java之发邮件

来源:互联网 发布:淘宝会员管理在哪 编辑:程序博客网 时间:2024/05/01 18:52
需要的jar包
  |--activation.jar
  |--mail.jar
传智的工具包
  |--itcast-tools-1.4.2.jar(如需简化操作可导入此包,但是依赖于上面2个包)

import java.io.File;import java.io.IOException;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message.RecipientType;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;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;import org.junit.Test;import cn.itcast.mail.AttachBean;import cn.itcast.mail.Mail;import cn.itcast.mail.MailUtils;public class Demo1 {@Testpublic void fun1() throws Exception {/* * 1. 得到session */Properties props = new Properties();props.setProperty("mail.host", "smtp.163.com");props.setProperty("mail.smtp.auth", "true");Authenticator auth = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("itcast_cxf", "itcast");}};Session session = Session.getInstance(props, auth);/* * 2. 创建MimeMessage */MimeMessage msg = new MimeMessage(session);msg.setFrom(new InternetAddress("itcast_cxf@163.com"));//设置发件人msg.setRecipients(RecipientType.TO, "itcast_cxf@126.com");//设置收件人msg.setRecipients(RecipientType.CC, "itcast_cxf@sohu.com");//设置抄送msg.setRecipients(RecipientType.BCC, "itcast_cxf@sina.com");//设置暗送msg.setSubject("这是来自ITCAST的测试邮件");msg.setContent("这就是一封垃圾邮件!", "text/html;charset=utf-8");/* * 3. 发 */Transport.send(msg);}/** * 带有附件的邮件!!! */@Testpublic void fun2() throws Exception {/* * 1. 得到session */Properties props = new Properties();props.setProperty("mail.host", "smtp.163.com");props.setProperty("mail.smtp.auth", "true");Authenticator auth = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("itcast_cxf", "itcast");}};Session session = Session.getInstance(props, auth);/* * 2. 创建MimeMessage */MimeMessage msg = new MimeMessage(session);msg.setFrom(new InternetAddress("itcast_cxf@163.com"));//设置发件人msg.setRecipients(RecipientType.TO, "itcast_cxf@126.com");//设置收件人msg.setSubject("这是来自ITCAST的测试邮件有附件");/////////////////////////////////////////////////////////* * 当发送包含附件的邮件时,邮件体就为多部件形式! * 1. 创建一个多部件的部件内容!MimeMultipart *   MimeMultipart就是一个集合,用来装载多个主体部件! * 2. 我们需要创建两个主体部件,一个是文本内容的,另一个是附件的。 *   主体部件叫MimeBodyPart * 3. 把MimeMultipart设置给MimeMessage的内容! */MimeMultipart list = new MimeMultipart();//创建多部分内容// 创建MimeBodyPartMimeBodyPart part1 = new MimeBodyPart();// 设置主体部件的内容part1.setContent("这是一封包含附件的垃圾邮件", "text/html;charset=utf-8");// 把主体部件添加到集合中list.addBodyPart(part1);// 创建MimeBodyPartMimeBodyPart part2 = new MimeBodyPart();part2.attachFile(new File("F:/f/白冰.jpg"));//设置附件的内容part2.setFileName(MimeUtility.encodeText("大美女.jpg"));//设置显示的文件名称,其中encodeText用来处理中文乱码问题list.addBodyPart(part2);msg.setContent(list);//把它设置给邮件作为邮件的内容。/////////////////////////////////////////////////////////* * 3. 发 */Transport.send(msg);}@Testpublic void fun3() throws Exception {/* * 1. 得到session */Session session = MailUtils.createSession("smtp.163.com", "itcast_cxf", "itcast");/* * 2. 创建邮件对象 */Mail mail = new Mail("itcast_cxf@163.com","itcast_cxf@126.com,itcast_cxf@sina.com","不是垃圾邮件能是什么呢?", "这里是正文");/* * 创建两个附件对象 */AttachBean ab1 = new AttachBean(new File("F:/f/白冰.jpg"), "小美女.jpg");AttachBean ab2 = new AttachBean(new File("F:/f/big.jpg"), "我的羽绒服.jpg");// 添加到mail中mail.addAttach(ab1);mail.addAttach(ab2);/* * 3. 发送 */MailUtils.send(session, mail);}}

0 0