站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题一段关于发送邮件的程序,请高手指点一二其中缘故!!!

一段关于发送邮件的程序,请高手指点一二其中缘故!!!

摘要: 一段关于发送邮件的程序,请高手指点一二其中缘故!!!


下面是本人写的一段用来发送邮件的程序。这个程序现在只能用来发送HTML格式的邮件,如果发送纯文本的邮件 则无法收到邮件内容。请问:这个程序如何修改才可以既用来发送HTML格式的邮件又可以用来发送纯文本格式的邮件??请开发过JAVAMAIL的兄弟看看。
public void sendSimpleEmail(String to) throws MessagingException{
MailAuthenticator ma;
ma=new MailAuthenticator(from,password);
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth","true");
Session session=Session.getInstance(props,ma);
MimeMessage msg=new MimeMessage(session);
try {
msg.setFrom(new InternetAddress(from));
msg.setRecipient(Message.RecipientType.TO,
new InternetAddress(to));
if(this.important.equals("1")){
msg.addHeader("X-Priority",this.important);
}

msg.setSubject(subject);
MimeBodyPart mbp_text=new MimeBodyPart();

//发送HTML格式的邮件用下面标记为AAA的语句置入邮件内容
mbp_text.setContent(content, "text/html;charset=GBK"); //AAA

//发送纯文本格式的邮件用下面标记为BBB的语句置入邮件内容
//mbp_text.setContent(content);//BBB

msg.setSentDate(new java.util.Date());

MimeMultipart mp = new MimeMultipart();

mp.setSubType("related");
mp.addBodyPart(mbp_text);
Enumeration efile=file.elements();
while(efile.hasMoreElements()){
MimeBodyPart mbp_file=new MimeBodyPart();
filename=efile .nextElement().toString().trim();
FileDataSource fds=new FileDataSource(filename);
mbp_file.setDataHandler(new DataHandler(fds));
BASE64Encoder enc = new BASE64Encoder();
filename ="=?GBK?B?"+enc.encode(fds.getNam().
getBytes())+"?=";
mbp_file.setFileName(filename);

mp.addBodyPart(mbp_file);
}
// file.removeAllElements();
msg.setContent(mp);
msg.setSentDate(new Date());

Transport.send(msg);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}


if(contentType.equals("text")){
message.setContent(mailContent, "text/plain; charset="+this.charset);
} else{
message.setContent(mailContent, "text/html; charset="+this.charset);
}


vacuumboy你好,请问怎样获得页面提交的邮件内容的类型contentType呀??请你告诉我,结帖给分。


vacuumboy你好,请问怎样获得页面提交的邮件内容的类型contentType呀??请你告诉我,结帖给分。


contentType是根据你的需要设置的,程序本身是没办法判断的。你上面的程序之所以不能发送纯文本的邮件是因为少了"text/plain; charset="+this.charset这个参数


我觉得javamail API应该是可以判断页面输入待发送的邮件内容是何种格式的( 纯文本/html)。
我输入如下的内容:

jkk

rtrtrtrt


rtytytry
rtytytry
rtytytry
rtytytry

则程序会把段内容作为HTML发送出去,一切正常。
如果我输入如下内容:

jkk
rtrtrtrt
rtytytry
rtytytry
rtytytry
rtytytry

则无法讲这个邮件内容正常发送出去,接收方收到的邮件正文是空的。

可见程序是根据正文了里是否含有html院士来判断邮件的格式。

大家认为呢???


我觉得javamail API应该是可以判断页面输入待发送的邮件内容是何种格式的( 纯文本/html)。
我输入如下的内容:

jkk

rtrtrtrt


rtytytry
rtytytry
rtytytry
rtytytry

则程序会把这段内容作为HTML发送出去,一切正常。
如果我输入如下内容:

jkk
rtrtrtrt
rtytytry
rtytytry
rtytytry
rtytytry

则无法讲这个邮件内容正常发送出去,接收方收到的邮件正文是空的。

可见程序是根据正文了里是否含有html元素来判断邮件的格式。

大家认为呢???



邮件客户端软件都有一个切换文本和超文本浏览的功能,你切换过后还是看不到么


vacuumboy(好好学习,天天向上) 你好,能不能帮我上面的程序改成可以发送含图片的html格式的邮件


可以发的呀,你只要用标签插入一图片然后发送的时候选择以html的格式发送即message.setContent(mailContent, "text/html; charset="+this.charset);
,查看的时候记得切换到超文本的状态下看应该就可以了


谢谢,是可以的。你有没有可以嵌到jsp页面上的“在线HTML编辑工具”呀,也叫“多媒体编辑工具”


↑返回目录
前一篇: 一个表单,里面的一个下拉框,里面的三种类别,当我选中一种类别时,表单生成数目不同的text
后一篇: 请教一个遍历某个根节点下所有子节点的方法