Java开发系列-电子邮箱

概述

电子邮箱就是在邮箱服务器上开启的一块空间。邮箱服务器就是一个安装在计算机的服务软件,提供有邮件服务。html

邮箱的发送流程

如今tom要发送一份邮件给jerry,首先tom将邮件经过客户端链接本身设置发送邮件服务器,经过邮件发送服务器将邮件发给了jerry的发送邮件服务器中。 jerry也是经过客户端链接本身的收件服务器,而后收件服务器从jerry的发件服务器中获取邮件。 若是jerry要发送邮件给tom也是相同的流程。java

<img src="https://images2018.cnblogs.com/blog/1375651/201808/1375651-20180822223936898-1528978121.png" width="800">服务器

邮箱协议

邮件的发送和接收都是须要协议的,分别是发送邮件协议、接收邮件的协议。 发送邮件的协议:smtp 接收邮件的协议:pop/pop3 或者 imapsession

查看下126邮箱的发送和接收邮件协议服务器 <img src="https://images2018.cnblogs.com/blog/1375651/201808/1375651-20180822225335546-1847925890.png" width="346">spa

Java实现发送邮件

主要涉及到三个核心类code

Properties 邮件服务器会话对象 Session Message 邮件内容 Transport 邮件发送者htm

邮件发送Utils

MailUtils对象

package com.coderhong.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils {

	public static void sendMail(String email, String emailMsg)
			throws AddressException, MessagingException {
		// 1.建立一个程序与邮件服务器会话对象 Session
		Properties props = new Properties();
		//设置发送的协议
		props.setProperty("mail.transport.protocol", "SMTP");
		
		//设置发送邮件的服务器
		props.setProperty("mail.host", "smtp.163.com");
		props.setProperty("mail.smtp.auth", "true");// 指定验证为true

		// 建立验证器
		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				//设置发送人的账号和密码
				return new PasswordAuthentication("hongketao1616", "hkt762100.");
			}
		};

		Session session = Session.getInstance(props, auth);

		// 2.建立一个Message,它至关因而邮件内容
		Message message = new MimeMessage(session);

		//设置发送者
		message.setFrom(new InternetAddress("hongketao1616@163.com"));

		//设置发送方式与接收者
		message.setRecipient(RecipientType.TO, new InternetAddress(email)); 

		//设置邮件主题
		message.setSubject("用户激活");
		// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");

		//设置邮件内容
		message.setContent(emailMsg, "text/html;charset=utf-8");

		// 3.建立 Transport用于将邮件发送
		Transport.send(message);
	}
}

MailUtils说明blog

<img src=https://images2018.cnblogs.com/blog/1375651/201808/1375651-20180822232836677-1252049049.png width="769">ip

相关文章
相关标签/搜索