iT邦幫忙

0

如何在系統自動發送的email中,用使用表格排版內容

如題,小弟JSP撰寫的系統有自動發送mail的功能,目前希望發送mail的內容可以用表格排版,檢視email的原始碼也看不出個所以然,有請各位高手指點,甘蝦!

謝謝大哥們的回答,小弟也分享解決問題的心得
小弟用Message物件的setText()方法設定郵件內容
但此方法只能以純文字的方式處理

如w大的範例所示以setContent()才能處理非純文字的郵件內容
需要有一MimeMultipart物件作為容器保存MIME郵件內容
然後使用addBodyPart()方法,將MimeBodyPart物件添加至郵件內容

MimeBodyPart物件處理MIME郵件內容的一個部分
可以設定這個部分的形式和內容
ex:mbp.setContent(bodyhtml,"text/html;charset=MS950");

本來的作法
Message msg = new MimeMessage(session);
String text="郵件內容";
msg.setText(text);
msg.setSentDate(new Date());
Transport.send(msg);
經修改
Message msg = new MimeMessage(session);
String text="郵件內容";
Multipart mp=new MimeMultipart();
MimeBodyPart mbp=new MimeBodyPart();
mbp.setContent(text,"text/html;charset=MS950");
mp.addBodyPart(mbp);
msg.setContent(mp);
msg.setSentDate(new Date());
Transport.send(msg);
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

12
隨風奶爸
iT邦好手 1 級 ‧ 2011-01-05 10:41:37
最佳解答

如果你用java mail的話,使用以下的語法:
// 內文格式 text/html
Multipart mp=new MimeMultipart();
MimeBodyPart mbp=new MimeBodyPart();
mbp.setContent(bodyhtml,"text/html;charset=MS950");
mp.addBodyPart(mbp);
message.setContent(mp);

在這之前的郵件內文設定,記得要加入html的語法,例如:
String bodyhtml="";
bodyhtml=bodyhtml+"XX網站 service 通知<br>";
bodyhtml=bodyhtml+"<a href=\"http://x.x.x.x./\">XX網站</a>";
bodyhtml=bodyhtml+"";

18
bhx
iT邦新手 5 級 ‧ 2011-01-04 13:28:17

將内容轉為 HTML 格式,
Mail format 設為 HTML

我要發表回答

立即登入回答