Java使用163和QQ邮箱发邮件

“细雨梦回鸡塞远,小楼吹彻玉笙寒”

现在做的项目有做到流程审批,到下一节点时,会给节点的负责人发送邮件通知。流程都是手写的代码,没有用到流程引擎。

正文

其实通过QQ邮箱或者163邮箱发邮件,代码都是一样的,区别只是这两个邮箱用的协议不一样。这里我用两个方法分别记录通过163和QQ邮箱发送邮件的例子。
通过QQ邮箱

//参数是收件人地址
public static void sendMail(String addressee) throws AddressException, MessagingException {
		Properties properties = new Properties();
		properties.put("mail.transport.protocol", "smtp");// 连接协议
		properties.put("mail.smtp.host", "smtp.qq.com");// 主机名
		properties.put("mail.smtp.port", 465);// 端口号
		properties.put("mail.smtp.auth", "true");
		properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
		properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
		// 得到会话对象
		Session session = Session.getInstance(properties);
		// 获取邮件对象
		Message message = new MimeMessage(session);
		// 设置发件人邮箱地址
		message.setFrom(new InternetAddress("xxx@qq.com"));
		// 设置收件人邮箱地址
		message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress(addressee)});
		// 设置邮件标题
		message.setSubject("您有新的流程工单需要处理!");
		// 设置邮件内容
		message.setText("尊敬的XXX,您有新的流程需要处理,请及时处理!请勿回复此邮件。");
		// 得到邮差对象
		Transport transport = session.getTransport();
		// 连接自己的邮箱账户
		transport.connect("xxx@qq.com", "xxx");// 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
		// 发送邮件
		transport.sendMessage(message, message.getAllRecipients());
		transport.close();
	}

通过163邮箱发送

//参数是收件人地址
public static void sendMail(String addressee) throws AddressException, MessagingException {
		// 发件人账号和密码
		 String MY_EMAIL_ACCOUNT = "xxx@163.com";
		 String MY_EMAIL_PASSWORD = "xxx";// 密码,是你自己的设置的授权码
		// SMTP服务器(这里用的163 SMTP服务器)
		String MEAIL_163_SMTP_HOST = "smtp.163.com";
		String SMTP_163_PORT = "25";// 端口号,这个是163使用到的;QQ的应该是465或者875
		// 收件人
		String RECEIVE_EMAIL_ACCOUNT = addressee;
		Properties p = new Properties();
		p.setProperty("mail.smtp.host", MEAIL_163_SMTP_HOST);
		p.setProperty("mail.smtp.port", SMTP_163_PORT);
		p.setProperty("mail.smtp.socketFactory.port", SMTP_163_PORT);
		p.setProperty("mail.smtp.auth", "true");
		p.setProperty("mail.smtp.socketFactory.class", "SSL_FACTORY");

		Session session = Session.getInstance(p, new Authenticator() {
			// 设置认证账户信息
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(MY_EMAIL_ACCOUNT, MY_EMAIL_PASSWORD);
			}
		});
		session.setDebug(true);
		MimeMessage message = new MimeMessage(session);
		// 发件人
		message.setFrom(new InternetAddress(MY_EMAIL_ACCOUNT));
		// 收件人
		message.setRecipients(Message.RecipientType.TO, RECEIVE_EMAIL_ACCOUNT);
		//抄送人
		message.setRecipients(Message.RecipientType.CC, MY_EMAIL_ACCOUNT);

		//主题
		message.setSubject("流程工单");
		// 内容
		message.setContent("您好,您有新的流程需要处理!", "text/html;charset=UTF-8");
		message.setSentDate(new Date());
		message.saveChanges();
		Transport.send(message);
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值