这是好久之前写的文章了,今天改了改,跟大家分享一下。
红色字体标记的都可以发送。
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message.RecipientType;
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 SendMail {
/**
* Javamail发送邮件的例子
*
* @param args
*/
public static void main(String[] args) throws Exception{
Properties props=new Properties();
//设置协议为smtp
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth","true");
Session session = Session.getInstance(props);
//开启调试功能
session.setDebug(true);
MimeMessage msg=new MimeMessage(session);
//设置发件人地址
msg.setFrom(new InternetAddress("xxx@163.com"));
//设置收件人地址
msg.setRecipient(RecipientType.TO, new InternetAddress("xxx@163.com"));
//设置邮件主题
msg.setSubject("测试邮件");
msg.setSentDate(new Date());
MimeBodyPart relatedMultipart=new MimeBodyPart();
//设置MimeMultipart的类型为related
MimeMultipart multiPart=new MimeMultipart("related");
MimeBodyPart htmlBodyPart=new MimeBodyPart();
//设置文本内容+html+图片信息
htmlBodyPart.setContent("这是一封测试邮件<br>"+"<a href=http://www.163.com>"+"163.com</a><br>" +"<img src=\"cid:1.jpg\">", "text/html;charset=gb2312");
multiPart.addBodyPart(htmlBodyPart);
MimeBodyPart gifBodyPart=new MimeBodyPart();
//把图片关联到html上
FileDataSource dateSource1=new FileDataSource("d:\\1.jpg");
gifBodyPart.setDataHandler(new DataHandler(dateSource1));
gifBodyPart.setContentID("1.jpg");
multiPart.addBodyPart(gifBodyPart);
relatedMultipart.setContent(multiPart);
//添加附件为1.rar
MimeBodyPart attachBodyPart=new MimeBodyPart();
FileDataSource dataSource2=new FileDataSource("d:\\1.rar");
attachBodyPart.setDataHandler(new DataHandler(dataSource2));
attachBodyPart.setFileName(dataSource2.getName());
//设置MimeMultipart的类型为mix
MimeMultipart allMultipart=new MimeMultipart("mix");
allMultipart.addBodyPart(relatedMultipart);
allMultipart.addBodyPart(attachBodyPart);
msg.setContent(allMultipart);
//更新并保存
msg.saveChanges();
Transport transport = session.getTransport();
//邮件服务器地址、用户名(发件方)、密码(发件方)
transport.connect("smtp.163.com", "username", "password");
transport.sendMessage(msg, msg.getRecipients(RecipientType.TO));
transport.close();
}
}