/*** 制作带附件的邮件并发送
*
*@throwsException*/
public static void makeEmailAndSend() throwsException {
String from= "";//发件箱
String to = "";//收件箱
String subject = "test";//邮件主题
String body = "testResult";//邮件内容//邮件服务器地址以及登陆用户名和密码
String smtpHost = "";
String user= "";
String password= "";
Properties props= new Properties();//Properties用户属性配置
props.setProperty("mail.transport.protocol", "smtp");//使用的协议(JavaMail规范要求)
props.setProperty("mail.smtp.host", smtpHost);//发件人的邮箱的 SMTP服务器地址
props.setProperty("mail.smtp.auth", "true");//请求认证,参数名称与具体实现有关
Session session= Session.getDefaultInstance(props);//session对象主要用于属性操作和会话管理//创建MimeMessage对象,定义MIME消息头信息
MimeMessage message = newMimeMessage(session);
message.setFrom(newInternetAddress(from));
message.setRecipients(MimeMessage.RecipientType.TO, to);
message.setSubject(subject);
message.setSentDate(newDate());//message.setText(body);//发纯文本邮件,可以直接用setText//定义一个MimeMultipart对象,可以包含多个MimeBodyPart
MimeMultipart multipart = newMimeMultipart();//表示邮件的一个MIME消息
MimeBodyPart bodyPart = newMimeBodyPart();
bodyPart.setContent(body,"text/html;charset=utf-8");//设置HTML格式的邮件正文
multipart.addBodyPart(bodyPart);//创建一个附件的MimeBodyPart对象, 并将它加入到前面创建的MimeMultipart对象中
MimeBodyPart attachment = newMimeBodyPart();
FileDataSource dataSource= new FileDataSource("D:\\test.jpg");
attachment.setFileName(dataSource.getName());
attachment.setDataHandler(newDataHandler(dataSource));
multipart.addBodyPart(attachment);//将multipart对象添加到消息体中
message.setContent(multipart);
message.saveChanges();//保存并生成邮件内容//用JavaMail Session对象的getTransport 方法来初始化Transport
Transport transport = session.getTransport("smtp");
transport.connect(smtpHost, user, password);//发送,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}