java邮件带图片_java发带图片正文和附件的邮件mail

这篇博客展示了如何使用Java的MimeMessage和MimeBodyPart类来创建并发送一封包含图片作为正文以及附件的邮件。通过设置DataHandler和FileDataSource,实现了将图片文件插入邮件内容,并通过MimeMultipart的混合和关联关系设置,完成邮件的构建。邮件发送过程中,使用了SMTP协议,动态授权码进行身份验证,并设置了收件人、抄送人和密送人。
摘要由CSDN通过智能技术生成

package com.mail;

import java.io.UnsupportedEncodingException;

import java.util.Date;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Address;

import javax.mail.MessagingException;

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;

public class mailtest {

public static MimeMessage createmail(Session se,String send,String recv1,String recv2,String recv3) throws MessagingException, UnsupportedEncodingException {

MimeMessage message=new MimeMessage(se);

message.setSubject("标题","utf-8");

//message.setContent("正文。。。。。","text/html;charset=utf-8");本例用图片代替正文

Address address=new InternetAddress(send,"sengname","utf-8");

message.setFrom(address);

//创建图片文本节点

MimeBodyPart imagePart=new MimeBodyPart();

DataHandler dataHandler=new DataHandler(new FileDataSource("t1.jpg"));

imagePart.setDataHandler(dataHandler);

imagePart.setContentID("myimage");

MimeBodyPart textPart=new MimeBodyPart();

textPart.setContent("","text/html;charset=utf-8");

//组装文本、图片节点

MimeMultipart mimeMultipart=new MimeMultipart();

mimeMultipart.addBodyPart(imagePart);

mimeMultipart.addBodyPart(textPart);

mimeMultipart.setSubType("related");//关联关系

//图片-文本--复合--转普通节点

MimeBodyPart tex_image_tPart=new MimeBodyPart();

tex_image_tPart.setContent(mimeMultipart);

//附件

MimeBodyPart aPart=new MimeBodyPart();

DataHandler dataHandler1=new DataHandler(new FileDataSource("t1.jpg"));

aPart.setDataHandler(dataHandler1);

//附件文件名

aPart.setFileName(MimeUtility.encodeText(dataHandler1.getName()));

//组装

MimeMultipart mimeMultipart1=new MimeMultipart();

mimeMultipart1.addBodyPart(tex_image_tPart);

mimeMultipart1.addBodyPart(aPart);

mimeMultipart1.setSubType("mixd");//混合关系

message.setContent(mimeMultipart1,"text/html;charset=utf-8");

message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(recv1,"shoujianren1","utf-8"));//发送shojianren

message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress(recv2,"shoujianren2","utf-8"));//抄送

message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress(recv3,"shoujianren3","utf-8"));//密送

message.setSentDate(new Date());

message.saveChanges();

return message;

}

public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {

// TODO Auto-generated method stub

Properties props=new Properties();

props.setProperty("mail.transport.protocol", "smtp");// 使用的协议(JavaMail规范要求)

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

props.setProperty("mail.smtp.port","465");//设置端口  // 发件人的邮箱的 SMTP 服务器地址

props.setProperty("mail.smtp.auth", "true");// 需要请求认证

// 需要请求认证;只有qq有这一项

props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

props.setProperty("mail.smtp.socketFactory.fallback", "false");

props.setProperty("mail.smtp.socketFactory.port", "465");

Session se=Session.getInstance(props);

se.setDebug(true);//dayin运行信息

MimeMessage message=createmail(se, "1215230335@qq.com", "1215230335@qq.com", "1215230335@qq.com", "1215230335@qq.com");

Transport transport=(Transport) se.getTransport();

transport.connect("1215230335@qq.com", "slxptfnnjocgicdi");//动态授权码

transport.sendMessage(message, message.getAllRecipients());

transport.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值