javaMail发送一封你自己的邮件

一、邮件开发的相关协议

SMTP : Simple Message Transfer Protocal  也就是发送协议;默认端口是25

POP:Post Office Protocal  字面翻译是邮局协议,也就是接收协议,默认端口是110

二、邮件发送接收的过程

三、准备工作

1.申请邮箱,我这里申请的是网易邮箱,接着登录,在设置里开通POP3/SMTP服务,开通这两个服务后才可以在第三方发送接收邮件

      2.启用客户端授权码,用以第三方登录连接网易服务器

四、编写代码

package com.mail.test;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class TestMail {
    
    public static void main(String[] args) throws Exception {
        Properties props = new Properties();    //创建Properties对象,用于存放key-value
        props.put("mail.smtp.host", "smtp.163.com");  //指定邮件发送服务器地址
        props.put("mail.smtp.auth", "true");  //服务器是否需要验证用户的身份信息
        
        Session session = Session.getInstance(props);  //得到session
        session.setDebug(true);  //代表启用debug模式,可以在控制台输出SMTP协议应答的过程
        
        //创建一个MimeMessage格式的邮件
        MimeMessage message = new MimeMessage(session);
        
        //设置邮件的发送者,Address是抽象类,找子类创建对象
        Address fromAddress = new InternetAddress("[email protected]");  //邮件地址
        message.setFrom(fromAddress);  //设置发件箱
        
        //设置邮件的接收者
        Address toAddress = new InternetAddress("[email protected]");  //邮件地址
        message.setRecipient(RecipientType.TO, toAddress);  //设置接收者地址
        
        //设置邮件的信息
        message.setSubject("新年快乐");  //邮件主题 
        message.setText("朋友,元旦已到,愿你快乐");  //邮件内容
        
        //保存邮件
        message.saveChanges();
        
        //得到发送邮件的通道
        Transport transport = session.getTransport("smtp");  //传入发送协议
        //通道链接到服务器
        transport.connect("smtp.163.com", "[email protected]", "dirkzh00");
        
        //通道发送
        transport.sendMessage(message, message.getAllRecipients());
        
        //关闭通道
        transport.close();
    }
}


五、发送邮件

    1.控制台打印相关信息

    2.发送邮件成功

写在最后:

需要注意的地方:一定要开通POP/SMTP服务;然后获取第三方登录的授权码;另外如果你是网易邮箱给QQ邮箱发消息,QQ邮箱默认是垃圾邮件,需要你在垃圾箱重拾一下,之后便可以了;还有就是如果你想用QQ邮箱做服务端,开通那两个服务会有点麻烦。我只试了网易和QQ这两个邮箱,你可以多试试,有问题添加微信DirkZhouzlw。

谢谢你的阅读,朋友。

欢迎关注微信公众号获取更多

猜你喜欢

转载自blog.csdn.net/qq_40082253/article/details/85523082