java发送outlook邮件
已经封装好工具类了,拿去直接调用就能用哈~
需要注册outlook邮箱账号密码,登录后绑定手机号就可以正常发送邮件,经测试邮件可以成功发送,但QQ邮箱总识别为垃圾邮件,邮件在垃圾箱.
- package com.qs.util;
-
- import java.util.Properties;
-
- import javax.activation.DataHandler;
- import javax.activation.DataSource;
- import javax.activation.FileDataSource;
- import javax.mail.Authenticator;
- import javax.mail.BodyPart;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.Multipart;
- 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;
-
- public class MailUtil {
-
- /**
- * @Title: 发送邮件工具类
- * @Description: 需要outlook邮箱账号密码
- * @param: to
- * @return: String
- * @throws
- */
- public static String sendMain(String to) {
- String from = "×××××@outlook.com";// 发件人电子邮箱
- //String to = "×××××@qq.com";// 收件人电子邮箱
- //获取系统属性,主要用于设置邮件相关的参数。
- Properties properties = System.getProperties();
- //设置邮件传输服务器,由于本次是发送邮件操作,所需我们需要配置smtp协议,按outlook官方同步邮件的要求,依次配置协议地址,端口号和加密方法
- properties.setProperty("mail.smtp.host", "smtp.office365.com");
- properties.setProperty("mail.smtp.port", "587");
- properties.setProperty("mail.smtp.starttls.enable", "true");
- //用户验证并返回Session,开启用户验证,设置发送邮箱的账号密码。
- properties.setProperty("mail.smtp.auth", "true");
- Session session = Session.getDefaultInstance(properties, new Authenticator() {
- @Override
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication("×××××@outlook.com", "××××××");//账号密码
- }
- });
-
- //创建MimeMessage消息对象,消息头配置了收发邮箱的地址,消息体包含了邮件标题和邮件内容。接收者类型:TO代表直接发送,CC代表抄送,BCC代表秘密抄送。
- try {
- MimeMessage message = new MimeMessage(session);
- message.addHeader("X-Mailer","Microsoft Outlook Express 6.00.2900.2869");
- message.setFrom(new InternetAddress(from));
- message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
- message.setSubject("入学要求及申读信息");
- message.setText("具体内容请见附件!");
- // Transport.send(message);
- // System.out.println("发送成功!");
-
- // 1.创建复合消息体
- Multipart multipart = new MimeMultipart();
- // 2.添加附件
- BodyPart filePart = new MimeBodyPart();
- String filePath = "/data/ISC2019130.xlsx";
- DataSource source = new FileDataSource(filePath);
- filePart.setDataHandler(new DataHandler(source));
- filePart.setFileName(source.getName());
- multipart.addBodyPart(filePart);
- // 3.添加文本内容
- MimeBodyPart textPart = new MimeBodyPart();
- textPart.setText("测试包含文本和附件的邮件!");
- multipart.addBodyPart(textPart);
- // 4.绑定消息对象
- message.setContent(multipart);
- // 5.发送邮件
- Transport.send(message);
- return "success";
- } catch (MessagingException e) {
- e.printStackTrace();
- return "failed";
- }
-
- }
-
- }

浙公网安备 33010602011771号