`
Mybeautiful
  • 浏览: 294249 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaMail发送html格式的邮件

阅读更多

  之前分享过一个发邮件的类,今天再分享一个收邮件的类,

 

package zhang.stony.mail;

import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
 * @author Stony Zhang  (Mybeautiful)
 * @Createdate 2010-8-12
 * @Emal:stonyz@live.com
 * @QQ:55279427
 */
public class MailSender {
	private MailSetting mSetting;

	private Session session;

	public MailSender(MailSetting mSetting) {
		this.mSetting = mSetting;

		final String username = mSetting.getUser();
		final String password = mSetting.getPassword();
		Properties props = new Properties();
		props.put("mail.smtp.host", mSetting.getSmtpHost());
		props.put("mail.smtp.auth", "true");
		session = Session.getInstance(props, new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(username, password);
			}
		});
	}

	public void sentMessage(String titile, String msg, String[] to)
			throws MessagingException {
		this.sentMessage(titile, msg, to, null);
	}

	public void sentMessage(String titile, String msg, String[] to, String[] cc)
			throws MessagingException {
		Message mailMessage = new MimeMessage(session);
		Address from = new InternetAddress(mSetting.getUser());
		mailMessage.setFrom(from);
		// Address to = new InternetAddress(mSetting.getUser());

		Address[] tos = new Address[to.length];
		for (int i = 0; i < to.length; i++) {
			tos[i] = new InternetAddress(to[i]);
		}
		mailMessage.setRecipients(Message.RecipientType.TO, tos);

		if (cc != null && cc.length > 0) {
			Address[] ccs = new Address[cc.length];
			for (int i = 0; i < cc.length; i++) {
				ccs[i] = new InternetAddress(cc[i]);
			}
			mailMessage.setRecipients(Message.RecipientType.CC, ccs);
		}

		mailMessage.setSubject(titile);
		mailMessage.setSentDate(new Date());
//		mailMessage.setText(msg);
		
		   BodyPart mdp = new MimeBodyPart(); 
		    mdp.setContent(msg, "text/html;charset=gb2312"); 
		    Multipart mm = new MimeMultipart(); 
		    mm.addBodyPart(mdp); 
		    mailMessage.setContent(mm); 
		    mailMessage.saveChanges(); 
		
		
		Transport.send(mailMessage);
	}
}

 

 

     其中用到了一个MailSetting的类,其内容请参阅   分享一个收邮件的类,使用相当简单

 

     关于Javamail,几年间已经用了N多次了,其间也碰到了一些问题,也都一一解决了,比如发送附件,乱码等等,如果各位有兴趣就相关问题进行探讨,欢迎留言。 

 

0
0
分享到:
评论
7 楼 Mybeautiful 2016-04-22  
袁光平 写道
您好我设置了html格式,但是邮件中的超链接还是不能正常显示为什么呢,求帮助!

到网页上看看邮件源码,检查链接是不是对的。 比如Chrome中,审查元素,看下超链接的内容是不是你发的
6 楼 袁光平 2016-03-02  
您好我设置了html格式,但是邮件中的超链接还是不能正常显示为什么呢,求帮助!
5 楼 Mybeautiful 2011-11-24  
chenyuxiaoxiao 写道
您好 最近在用javamail 在做邮件系统 当文件稍大就出现了下面的出错 请帮忙解决
com.sun.mail.smtp.SMTPSendFailedException: [EOF]

是不是附件大小超过你的邮箱支持大小? 换个其他的邮箱试试。
Error code 多少?
4 楼 chenyuxiaoxiao 2011-11-23  
chenyuxiaoxiao 写道
您好 最近在用javamail 在做邮件系统 当文件稍大就出现了下面的出错 请帮忙解决
com.sun.mail.smtp.SMTPSendFailedException: [EOF]

谢谢
3 楼 chenyuxiaoxiao 2011-11-23  
您好 最近在用javamail 在做邮件系统 当文件稍大就出现了下面的出错 请帮忙解决
com.sun.mail.smtp.SMTPSendFailedException: [EOF]
2 楼 Mybeautiful 2011-03-22  
vincent_com 写道
最近 在做一个相关的邮件系统..其中遇到不少问题.而且搭建postfix服务器也没成功..您有好点子么?

能不能把问题具体列出来看看?
1 楼 vincent_com 2011-03-15  
最近 在做一个相关的邮件系统..其中遇到不少问题.而且搭建postfix服务器也没成功..您有好点子么?

相关推荐

Global site tag (gtag.js) - Google Analytics