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("[email protected]"));
		// 设置收件人邮箱地址
		message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress(addressee)});
		// 设置邮件标题
		message.setSubject("您有新的流程工单需要处理!");
		// 设置邮件内容
		message.setText("尊敬的XXX,您有新的流程需要处理,请及时处理!请勿回复此邮件。");
		// 得到邮差对象
		Transport transport = session.getTransport();
		// 连接自己的邮箱账户
		transport.connect("[email protected]", "xxx");// 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
		// 发送邮件
		transport.sendMessage(message, message.getAllRecipients());
		transport.close();
	}

通过163邮箱发送

//参数是收件人地址
public static void sendMail(String addressee) throws AddressException, MessagingException {
		// 发件人账号和密码
		 String MY_EMAIL_ACCOUNT = "[email protected]";
		 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);
	}

你可能感兴趣的:(Java发邮件,Java通过163发邮件,发送邮件,java通过QQ发邮件,Java)