邮件发送原理
协议:
发送邮件:SMTP协议
接收邮件:POP3协议
准备
JavaMail 和Activation jar包
步骤
只含纯文本的邮件
1.创建定义整个应用程序所需的环境信息的session对象, Authenticator 认证对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("1982595723@qq.com", "bxqtjwyyyndvcccd");
}
});
2.从session中获取transport对象
Transport transport = session.getTransport();
3.使用邮箱的用户名和授权码连接上邮件服务器
transport.connect("smtp.qq.com","1982595723@qq.com","bxqtjwyyyndvcccd");
4.创建邮件
1> 指明邮件收件人
2> 邮件标题
3> 邮件文本内容
4> 邮件发送人
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("1982595723@qq.com"));
message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("1982595723@qq.com")});
message.setSubject("邮件主题");
message.setContent("邮件内容","text/html;charset=utf-8");
5.发送邮件
transport.sendMessage(message,message.getAllRecipients());
transport.close();
包含内嵌资源和附件的邮件
只需在上述中修改邮件内容即可
创建邮件:
//内嵌资源-图片
MimeBodyPart img = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("src/1.jpg"));
img.setDataHandler(dh);
img.setContentID("1");
//文本
MimeBodyPart text=new MimeBodyPart();
text.setContent("这是一封包含图片的邮件<img src='cid:1'>","text/html;charset=utf-8");
//将内容添加至框架中
MimeMultipart mimeMultipart = new MimeMultipart();
mimeMultipart.addBodyPart(img);
mimeMultipart.addBodyPart(text);
mimeMultipart.setSubType("mixed");
message.setContent(mimeMultipart);