-
使用jar包mail
-
使用客户端发送邮件需要先在邮箱里面设置授权客户端发送
public static void main(String[] args) throws MessagingException {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.sina.com"); // 存储发送邮件服务器的信息
props.put("mail.smtp.auth", "true"); // 同时通过验证
Session session = Session.getInstance(props); // 根据属性新建一个邮件会话
session.setDebug(true);
MimeMessage message = new MimeMessage(session); // 由邮件会话新建一个消息对象
// 设置邮件
InternetAddress from = new InternetAddress("XXX@sina.com");
message.setFrom(from); // 设置发件人
message.setSubject("测试邮件"); // 设置主题
message.setText("测试内容"); // 设置信件内容
message.setSentDate(new Date()); // 设置发信时间
// 整封邮件的MINE消息体
MimeMultipart msgMultipart = new MimeMultipart("mixed");// 混合的组合关系
// 设置邮件的MINE消息体
message.setContent(msgMultipart);
// 附件1
MimeBodyPart attch1 = new MimeBodyPart();
msgMultipart.addBodyPart(attch1);
DataSource ds1 = new FileDataSource(new File(
"C:/Users/bytter/Desktop/1.wsdl"));
// 数据处理器
DataHandler dh1 = new DataHandler(ds1);
// 设置第一个附件的数据
attch1.setDataHandler(dh1);
// 设置第一个附件的文件名 中文乱码问题解决
attch1.setFileName(MimeUtility.encodeWord("2.wsdl");
//邮件正文
MimeBodyPart mbpContent = new MimeBodyPart();
mbpContent.setContent("测试内容2", "text/html;charset=gb2312");
// 向MimeMessage添加(Multipart代表正文)
msgMultipart.addBodyPart(mbpContent);
/*MimeBodyPart body = new MimeBodyPart();
msgMultipart.addBodyPart(body);
BodyPart contentPart = new MimeBodyPart();
contentPart.setText("测试内容2");
msgMultipart.addBodyPart(contentPart);*/
Transport transport = session.getTransport("smtp");
transport.connect("smtp.sina.com", "XXX@sina.com", "XXXX"); // 以smtp方式登录邮箱
// 设置收件人,并设置其接收类型为TO
InternetAddress to = new InternetAddress("XXXX@sina.com");
message.setRecipient(Message.RecipientType.TO, to);
// 存储邮件信息
message.saveChanges();
// 发送
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}