smtp协议:
telnet smtp.qq.com 25
ehlo kevin
auth login
eGlhbmdqaWU1NUBxcS5jb20=
a2V2aW5feGlhbmc1NQ==
mail from:<xiangjie55@qq.com>
rcpt to:<626852095@qq.com>
data
from:<kevin_xiang55@qq.com>
to:<626852095@qq.com>
subject:test
xxxxxxxxxxxxxxxxxxxxxxxxxxx
.
quit
需要包
activation.jar
mail.jar
邮件生成:
public class ImageMail {
/**
* 带图片的邮件
*/
public static void main(String[] args) throws Exception {
Session session = Session.getInstance(new Properties());
MimeMessage message = new MimeMessage(session);
//设置邮件的基本信息
message.setFrom(new InternetAddress("xx@sina.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xx@sina.com"));
message.setSubject("test");
//准备邮件数据
//准备邮件正文数据
MimeBodyPart text = new MimeBodyPart();
text.setContent("xxxx<img src='cid:xxx.jpg'>xxxxxxxxx", "text/html");
//准备图片数据
MimeBodyPart image = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("src\\1.jpg"));
image.setDataHandler(dh);
image.setContentID("xxx.jpg");
//描述数据关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("related");
message.setContent(mm);
message.saveChanges();
message.writeTo(new FileOutputStream("c:\\1.eml"));
}
}
// 文字 附件 图片 混合右键
public class MixedMail {
/**
* 最复杂的邮件
* @throws MessagingException
* @throws AddressException
*/
public static void main(String[] args) throws Exception {
Session session = Session.getInstance(new Properties());
MimeMessage message = new MimeMessage(session);
//设置邮件的基本信息
message.setFrom(new InternetAddress("xx@sina.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xx@sina.com"));
message.setSubject("测试");
//正文
MimeBodyPart text = new MimeBodyPart();
text.setContent("xxx这是女的xxxx<br/><img src='cid:aaa.jpg'>","text/html;charset=UTF-8");
//图片
MimeBodyPart image = new MimeBodyPart();
image.setDataHandler(new DataHandler(new FileDataSource("src\\3.jpg")));
image.setContentID("aaa.jpg");
//附件1
MimeBodyPart attach = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("src\\4.zip"));
attach.setDataHandler(dh);
attach.setFileName(dh.getName());
//附件2
MimeBodyPart attach2 = new MimeBodyPart();
DataHandler dh2 = new DataHandler(new FileDataSource("src\\波子.zip"));
attach2.setDataHandler(dh2);
attach2.setFileName(MimeUtility.encodeText(dh2.getName()));
//描述关系:正文和图片
MimeMultipart mp1 = new MimeMultipart();
mp1.addBodyPart(text);
mp1.addBodyPart(image);
mp1.setSubType("related");
//描述关系:正文和附件
MimeMultipart mp2 = new MimeMultipart();
mp2.addBodyPart(attach);
mp2.addBodyPart(attach2);
MimeBodyPart content = new MimeBodyPart(); //代表正文的bodypart
content.setContent(mp1);
mp2.addBodyPart(content);
mp2.setSubType("mixed");
message.setContent(mp2);
message.saveChanges();
message.writeTo(new FileOutputStream("c:\\3.eml"));
}
}
邮件发送:
public class Sendmail {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.163.com");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
//创建session
Session session = Session.getInstance(prop);
session.setDebug(true);
//通过session得到transport对象
Transport ts = session.getTransport();
//连上邮件服务器
ts.connect("smtp.163.com", "xiangjie012455", "012455");
//发送邮件
Message message = makeMessage(session);
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}
public static Message makeMessage(Session session) throws Exception, MessagingException{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("xiangjie012455@163.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("kevin_xiang55@163.com"));
message.setSubject("test");
message.setContent("aaa", "text/html;charset=utf-8");
return message;
}
}