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";
		}
		
	}

}

如果任何疑问或学习交流,请搜索公众号"老秦的快乐生活"获取我的联系方式

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值