首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

可带附件的复杂邮件发送范例

2012-12-21 
可带附件的复杂邮件发送实例Properties props new Properties()?????? props.setProperty(mail.transp

可带附件的复杂邮件发送实例

Properties props = new Properties();

?????? props.setProperty("mail.transport.protocol", "smtp");

?????? props.setProperty("mail.smtp.auth", "true");

?????? props.setProperty("mail.host", "smtp.163.com");

?????? Session session = Session.getInstance(props,new Authenticator(){

?

?????????? @Override

?????????? protected PasswordAuthentication getPasswordAuthentication() {

????????????? // TODO Auto-generated method stub

????????????? return new PasswordAuthentication("aaaa","******");

?????????? }

??????????

?????? });

?????? session.setDebug(true);

??????

?????? Message msg = new MimeMessage(session);

?????? msg.setFrom(new InternetAddress("""+MimeUtility.encodeText("小明")+"" <aaaa@163.com>"));??//在邮件的发件人中显示中文

?????? msg.setSubject("复杂的邮件");

?????? msg.setRecipients(RecipientType.TO, InternetAddress.parse(bbb@sina.com,ccc@qq.com));

msg.setReplyTo(new Address[]{new InternetAddress("ccccc@qq.com")});???//回复时默认回复此地址

?

?????? Multipart msgMultipart = new MimeMultipart("mixed");??? //邮件主体,是并列组合关系,因为附件和内容之间是并列的,这里不要用multipart/mixed

?????? msg.setContent(msgMultipart);

??????

?????? MimeBodyPart attch1 = new MimeBodyPart();???? //附件1

?????? MimeBodyPart attch2 = new MimeBodyPart();???? //附件2

?????? MimeBodyPart htmlBody = new MimeBodyPart();????? //主体内容

?????? msgMultipart.addBodyPart(attch1);

?????? msgMultipart.addBodyPart(attch2);

?????? msgMultipart.addBodyPart(htmlBody);

??????

?????? DataSource ds1 = new FileDataSource("E:\\学习文件\\Java\\javamail\\JavaMail API简介(一).doc");?????? //附件1的文件

?????? DataHandler dh1 = new DataHandler(ds1);

?????? DataSource ds2 = new FileDataSource("E:\\学习文件\\Java\\javamail\\Java邮件发送实例.doc");??? //附件2的文件

?????? DataHandler dh2 = new DataHandler(ds2);

??????

?????? attch1.setDataHandler(dh1);

?????? attch2.setDataHandler(dh2);

?????? attch1.setFileName(MimeUtility.encodeText("JavaMail API简介(一).doc"));??? ??? //设置附件的文件名,不可少(有中文的要编码)

?????? attch2.setFileName(MimeUtility.encodeText("Java邮件发送实例.doc"));

??????

?????? Multipart htmlPart = new MimeMultipart("related");????? //主体内容里又包含多部分,是html和图片,它们的关系是依赖,这里不要用multipart/related

?????? htmlBody.setContent(htmlPart);

??????

?????? MimeBodyPart contBody = new MimeBodyPart();????????? //主体内容里的html内容

?????? MimeBodyPart gifBody = new MimeBodyPart();?????????? //主体内容里的图片内容

?????? htmlPart.addBodyPart(contBody);

?????? htmlPart.addBodyPart(gifBody);

??????

?????? contBody.setContent("<span style='color:green;'>你好吗,朋友!</span><img src='http://www.wwc.com/邮件主体的组合关系.jpg'>", "text/html;charset=gbk");

?????? DataSource gifDS = new FileDataSource("E:\\学习文件\\Java\\javamail\\邮件主体的组合关系.jpg");

?????? DataHandler gifDH = new DataHandler(gifDS);

?????? gifBody.setDataHandler(gifDH);

?????? gifBody.setHeader("Content-Location", MimeUtility.encodeText("http://www.wwc.com/邮件主体的组合关系.jpg"));?????? //设置html部分引用的图片地址

??????

?????? msg.saveChanges();????????? //把所有的内容保存在message中

//???? OutputStream msgFile = new FileOutputeam("E:\\学习文件\\Java\\javamail\\测试复杂邮件.eml");

//???? msg.writeTo(msgFile);

//???? msgFile.close();

??????

?????? Transport.send(msg);

热点排行