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
邮件生成:
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"); return message; } }