Table of Contents
JavaMail email development
1. Emails with only plain text
Code examples are as follows:
package com.lyh.sendemail; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; //发送邮件 public class MessageDemo1 { public static void main(String[] args) throws Exception{ Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置 props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的 props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的 // props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的 props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关 Session session = Session.getInstance(props);//发送邮件时使用的环境配置 session.setDebug(true); MimeMessage message = new MimeMessage(session); //设置邮件的头 message.setFrom(new InternetAddress("xxx@163.com")); message.setRecipients(Message.RecipientType.TO, "xxx@qq.com"); message.setSubject("This is second message"); //设置正文 message.setContent("<h1 id="hello">hello</h1>", "text/html"); // message.setText("<h1 id="hello">hello</h1>");//纯文本 message.saveChanges(); //发送邮件 Transport ts = session.getTransport(); ts.connect("xxx@163.com", "123456"); // 密码为授权码不是邮箱的登录密码 ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法} } }
Copy after login
2. Emails with pictures
a. Complex email encapsulation model
Code examples
package com.lyh.sendemail; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; 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 MessageDemo2 { public static void main(String[] args) throws Exception{ Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置 props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的 props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的 // props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的 props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关 Session session = Session.getInstance(props);//发送邮件时使用的环境配置 session.setDebug(true); MimeMessage message = new MimeMessage(session); //设置邮件的头 message.setFrom(new InternetAddress("xxx@163.com")); message.setRecipients(Message.RecipientType.TO, "xxx@qq.com"); message.setSubject("This is second message"); //设置正文 //搞出文本部分 MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent("aaa<img src='cid:mm'/ alt="JavaMail email development" >aaa", "text/html"); //搞图片部分 MimeBodyPart imagePart = new MimeBodyPart(); imagePart.setContentID("mm"); //把磁盘上的文件加到part中使用到了JAF框架 DataHandler dh = new DataHandler(new FileDataSource("src/0.jpg")); imagePart.setDataHandler(dh); MimeMultipart mp = new MimeMultipart(); mp.addBodyPart(textPart); mp.addBodyPart(imagePart); mp.setSubType("related");//有关系的 message.setContent(mp); message.saveChanges(); //发送邮件 Transport ts = session.getTransport(); ts.connect("xxx@163.com", "123456"); //密码为授权码不是邮箱的登录密码 ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法 } }
Copy after login
3. With text, Emails with pictures and attachments
Code examples:
package com.lyh.sendemail; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; 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; import javax.mail.internet.MimeUtility; //发送邮件 public class MessageDemo3 { public static void main(String[] args) throws Exception{ Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置 props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的 props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的 // props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的 props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关 Session session = Session.getInstance(props);//发送邮件时使用的环境配置 // session.setDebug(true); MimeMessage message = new MimeMessage(session); //设置邮件的头 message.setFrom(new InternetAddress("xxx@163.com")); message.setRecipients(Message.RecipientType.TO, "xxxqq.com"); message.setSubject("这是一封复杂的邮件"); //设置正文 //搞出文本部分 MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent("美女<img src='cid:mm'/ alt="JavaMail email development" >aaa", "text/html;charset=UTF-8"); //搞图片部分 MimeBodyPart imagePart = new MimeBodyPart(); imagePart.setContentID("mm"); //把磁盘上的文件加到part中使用到了JAF框架 DataHandler dh = new DataHandler(new FileDataSource("src/0.jpg")); imagePart.setDataHandler(dh); MimeMultipart mp = new MimeMultipart(); mp.addBodyPart(textPart); mp.addBodyPart(imagePart); mp.setSubType("related");//有关系的 MimeBodyPart textImagePart = new MimeBodyPart(); //将 MimeMultipart 添加到 MimeBodyPart实现附件的发送 textImagePart.setContent(mp); //创建附件部分 MimeBodyPart attachmentPart = new MimeBodyPart(); dh = new DataHandler(new FileDataSource("src/账户.rar")); String filename = dh.getName(); attachmentPart.setDataHandler(dh); //手工设置文件名 防止乱码使用 javaMail里的 MimeUtility进行编码 attachmentPart.setFileName(MimeUtility.encodeText(filename)); //最终的 MimeMultipart MimeMultipart finalMp = new MimeMultipart(); finalMp.addBodyPart(attachmentPart); finalMp.addBodyPart(textImagePart); finalMp.setSubType("mixed"); message.setContent(finalMp); message.saveChanges(); //发送邮件 Transport ts = session.getTransport(); ts.connect("xxx@163.com", "123456"); //密码为授权码不是邮箱的登录密码 ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法 } }
Copy after login
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article
Assassin's Creed Shadows: Seashell Riddle Solution
4 weeks ago
By DDD
What's New in Windows 11 KB5054979 & How to Fix Update Issues
3 weeks ago
By DDD
Where to find the Crane Control Keycard in Atomfall
4 weeks ago
By DDD
Roblox: Dead Rails - How To Complete Every Challenge
1 months ago
By DDD
Atomfall guide: item locations, quest guides, and tips
1 months ago
By DDD

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
