需求包:mail.jar activation.jar
下边直接放出例子,注意内容中最好不要出现“test”“测试”等字样,否则容易被认定为垃圾邮件从而报错。
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
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;
public class sendEmailTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//设置环境
Properties pros=new Properties();//实例化一个Properties对象
pros.setProperty("mail.smtp.auth", "true");//设置是否验证。此处为true
pros.setProperty("mail.transport.protocol", "smtp");//设置传输协议。此处为smtp协议
Session session=Session.getInstance(pros);//通过Session静态方法getInstance()传入一个Properties对象获取session对象
session.setDebug(true);//设置是否显示debug信息
//编辑好邮件信息
Message msg=new MimeMessage(session);//通过子类的构造函数传入一个session对象来实例化一个Message对象
msg.setSubject("新年到了");//邮件标题
msg.setFrom(new InternetAddress("m15981875129@163.com"));//发件人邮箱
msg.setReplyTo(new Address[]{new InternetAddress("m15981875129@163.com")});//设置默认回复人
//图片
MimeBodyPart img = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("resource//slogo.gif"));//图片路径
img.setDataHandler(dh);
img.setContentID("a");
//正文
MimeBodyPart text = new MimeBodyPart();
text.setContent("<img src='cid:a'><br/>这里正文内容 for img", "text/html;charset=utf-8"); //注意编码问题
//描述数据关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(img);
mm.setSubType("related");
msg.setContent(mm);
msg.saveChanges(); //保存更新
//发送邮件
Transport transport=session.getTransport();//通过session的getTransport()方法获得Transport对象
transport.connect("smtp.163.com", 25, "m15981875129", "liu19910314");//打开连接 参数信息:1.smtp服务器 2.端口号 3.用户名 4.密码
transport.sendMessage(msg, new Address[]{new InternetAddress("976303544@qq.com")});//设置收件人邮箱并发送邮件
transport.close();//关闭连接
}
}