基于smtp协议邮件发送简单例子

电子邮箱协议

常用的电子邮件协议有SMTPPOP3IMAP4,它们都隶属于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 = "xxxxxx@qq.com";
        String to = "xxxxxxxx@qq.com";
        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(
                        "xxxxxxx@qq.com",
                        "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);
    }
 
}

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页