电子邮箱协议
常用的电子邮件协议有SMTP
、POP3
、IMAP4
,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。
SMTP协议
SMTP的全称是“Simple Mail Transfer Protocol
”,即简单邮件传输协议。SMTP是一个相对简单的基于文本
的协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于TCP/IP协议簇
,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器
,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
SMTP已是事实上的E-Mail传输的标准。
工作过程
SMTP协议的工作过程可分为如下3个过程:
(1) 建立连接:在这一阶段,SMTP客户请求与服务器的25
端口建立一个TCP连接。一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。
(2) 邮件传送:利用命令,SMTP客户将邮件的源地址、目的地址和邮件的具体内容
传递给SMTP服务器,SMTP服务器进行相应的响应并接收邮件。
(3)连接释放:SMTP客户发出退出命令,服务器在处理命令后进行响应,随后关闭TCP连接。
(以上摘自百度百科)
举例
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.util.Scanner;
public class Mailer {
public static void main(String[] args)throws Exception{
String from = "[email protected]";
String to = "[email protected]";
String host = "smtp.qq.com"; //服务器地址
Properties props = System.getProperties();
props.setProperty("mail.smtp.host",host);
props.put("mail.smtp.auth",true);
//props.setProperty("mail.smtp.timeout","10000");
Session session = Session.getDefaultInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
"[email protected]",
"xxxxx" //16位授权码
);
}
});
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("这里是我的邮箱"); //标题
message.setText("xx"); //内容
Transport.send(message);
}
}