使用JavaMail发送邮件

来源:互联网 发布:谷嫂淘宝同款排除 编辑:程序博客网 时间:2024/05/20 09:43

使用JavaMail实现发送邮件,包括纯文本邮件,包含图片的文件以及带有附件的邮件。

发送邮件的步骤都是固定的,创建邮件的时候,方法会有所不同。

package com.sudytech.email;import java.io.FileOutputStream;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 Email {public static void main(String[] args) throws Exception {new Email().send();}public void send() throws Exception{Properties prop=new Properties();prop.setProperty("mail.host", "smtp.sohu.com");prop.setProperty("mail.transport.protocol", "smtp");prop.setProperty("mail.smtp.auth", "true");Session session=Session.getInstance(prop);session.setDebug(true);//Message message=this.createMessage(session);//Message message=this.createMessage1(session);//Message message=this.createMessage2(session);Message message=this.createMessage3(session);Transport tr=session.getTransport();tr.connect("smtp.qq.com","424457896","aaa123aaa");tr.sendMessage(message,message.getAllRecipients());tr.close();}/** * 纯文本邮件 */public MimeMessage createMessage(Session session) throws Exception{MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress("424457896@qq.com"));message.setSubject("纯文本邮件");message.setRecipient(Message.RecipientType.TO, new InternetAddress("424457896@qq.com"));message.setContent("我是纯文本","text/html;charset=UTF-8");return message;}/** * 带有图片的邮件 */public MimeMessage createMessage1(Session session) throws Exception{MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress("424457896@qq.com"));message.setSubject("带图片的邮件");message.setRecipient(Message.RecipientType.TO, new InternetAddress("424457896@qq.com"));//纯文本MimeBodyPart text=new MimeBodyPart();text.setContent("这是一封邮件正文带图片<img src='cid:xxx.jpg'>的邮件", "text/html;charset=UTF-8");//图片MimeBodyPart image = new MimeBodyPart();DataHandler dh = new DataHandler(new FileDataSource("src\\5.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();//将创建好的邮件写入到E盘以文件的形式进行保存//message.writeTo(new FileOutputStream("E:\\ImageMail.eml"));return message;}/** * 带有附件的邮件 */public MimeMessage createMessage2(Session session) throws Exception{MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress("424457896@qq.com"));message.setSubject("带有附件的邮件");message.setRecipient(Message.RecipientType.TO, new InternetAddress("424457896@qq.com"));//纯文本MimeBodyPart text=new MimeBodyPart();text.setContent("这是一封邮件正文带附件的邮件", "text/html;charset=UTF-8");//附件MimeBodyPart attach = new MimeBodyPart();DataHandler dh=new DataHandler(new FileDataSource("src\\5.jpg"));attach.setDataHandler(dh);attach.setFileName(dh.getName());//描述数据关系MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text);mm.addBodyPart(attach);mm.setSubType("mixed");message.setContent(mm);message.saveChanges();return message;}/** * 带有图片和附件的邮件 */public MimeMessage createMessage3(Session session) throws Exception{MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress("424457896@qq.com"));message.setSubject("纯文本,图片和附件的邮件");message.setRecipient(Message.RecipientType.TO, new InternetAddress("424457896@qq.com"));//纯文本MimeBodyPart text=new MimeBodyPart();text.setContent("这是一封邮件正文带图片和附件的邮件,图片是<img src='cid:xxx.jpg' />", "text/html;charset=UTF-8");//图片MimeBodyPart image=new MimeBodyPart();DataHandler dh=new DataHandler(new FileDataSource("src\\5.jpg"));image.setDataHandler(dh);image.setContentID("xxx.jpg");//描述关系,纯文本和图片MimeMultipart mm1=new MimeMultipart();mm1.addBodyPart(text);mm1.addBodyPart(image);mm1.setSubType("related");//先把mm1放进MimeBodypart的content里面,最后将content与attach1放进MimeMultipart的mm2里面,相当于把mm1和mm2整合到了一起MimeBodyPart content=new MimeBodyPart();content.setContent(mm1);//附件1MimeBodyPart attach1=new MimeBodyPart();DataHandler dh1=new DataHandler(new FileDataSource("src\\5.jpg"));attach1.setDataHandler(dh1);attach1.setFileName(dh1.getName());MimeMultipart mm2=new MimeMultipart();mm2.addBodyPart(attach1);mm2.addBodyPart(content);mm2.setSubType("mixed");message.setContent(mm2);message.saveChanges();return message;}}


0 0