JavaWeb2 邮件发送
mail-1.4.7.jar
activation-1.1.1.jar
发送qq邮箱:
properties.setProperty("mail.host","smtp.qq.com");//设置qq邮件服务器
properties.setProperty("mail.transport.protocol","smtp");//邮件发送协议
properties.setProperty("mail.smtp.auth","true");//需要验证用户名密码
//关于qq邮箱,还要设置ssl加密,加上以下代码:
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable","true");
properties.put("mail.smtp.ssl.socketFactory","sf");
//使用javamail发送邮件5个步骤
//1.创建定义整个应用程序所需的环境信息的session对象
//qq邮箱特有
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名,授权码
return new PasswordAuthentication("1468223447@qq.com", "qdizxmzgwhyogdga");
}
});
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3.使用邮箱的用户名和授权码连上邮件服务器
ts.connect("smtp.qq.com","1468223447@qq.com","qdizxmzgwhyogdga");
//4.创建邮件
//注意需要传递session
MimeMessage message = new MimeMessage(session);
message.setSubject("简单文本邮件");
//邮件主题
message.setFrom(new InternetAddress("1468223447@qq.com"));
//收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("1468223447@qq.com"));
//邮件内容
//*******************************************************************************************
message.setContent("你好","text/html;charset=UTF-8");
//*******************************************************************************************
//5.发送邮件
ts.sendMessage(message,message.getAllRecipients());
System.out.println("发送邮件成功!");
//6.关闭连接
ts.close();
发送多文本邮件
MIME(多用途互联网邮件扩展类型)
MimebodyPart类
表示的是一个MIME消息,它和MimeMessage类一样,都是从Part接口继承过来。
MimeMultipart类
是抽象类Multipart的实现子类,用来组合多个MIME消息,- -个MimeMultipart对象可以包含多个代表MIME消息的MimeBodyPart对象。
发送图片邮件:
Properties properties=new Properties();
properties.setProperty("mail.host","smtp.qq.com");//设置qq邮件服务器
properties.setProperty("mail.transport.protocol","smtp");//邮件发送协议
properties.setProperty("mail.smtp.auth","true");//需要验证用户名密码
//关于qq邮箱,还要设置ssl加密,加上以下代码:
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable","true");
properties.put("mail.smtp.ssl.socketFactory","sf");
//使用javamail发送邮件5个步骤
//1.创建定义整个应用程序所需的环境信息的session对象
//qq邮箱特有
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名,授权码
return new PasswordAuthentication("1468223447@qq.com", "qdizxmzgwhyogdga");
}
});
//可以查看程序发送邮件的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3.使用邮箱的用户名和授权码连上邮件服务器
ts.connect("smtp.qq.com","1468223447@qq.com","qdizxmzgwhyogdga");
//4.创建邮件
//注意需要传递session
MimeMessage message = new MimeMessage(session);
message.setSubject("带有图片的邮件");
//邮件主题
message.setFrom(new InternetAddress("1468223447@qq.com"));
//收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("1468223447@qq.com"));
//邮件内容
//*******************************************************************************************
//准备图片数据
MimeBodyPart image = new MimeBodyPart();
//图片进行数据处理
DataHandler dataHandler = new DataHandler(new FileDataSource("src/resources/bz.jpg"));
image.setDataHandler(dataHandler);//在我们的body中放入这个处理完的图片数据
image.setContentID("bz.jpg");//给图片设置一个ID,在后面可以使用
//准备正文数据
MimeBodyPart text = new MimeBodyPart();
//cid为ContextID
text.setContent("这是一封邮件正文带图片<img src='cid:bz.jpg'>的邮件","text/html;charset=UTF-8");
//描述数据关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("related");//类型related mixed等
//设置到消息中,保存修改
message.setContent(mm);//把最后编辑完的邮件放入消息中
message.saveChanges();
//*******************************************************************************************
//5.发送邮件
ts.sendMessage(message,message.getAllRecipients());
System.out.println("发送邮件成功!");
//6.关闭连接
ts.close();
```