欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java邮件发送

程序员文章站 2022-05-18 21:26:11
...

在使用第三方客户端登录电子邮箱的时候,会涉及到一个邮箱授权码,并且是需要用户在邮箱官网去手动设置的,这是为了避免直接泄露电子邮箱的密码。

发送邮件采用的协议是SMTP,收取邮件采用的协议是POP3、IMAP。

对于QQ邮箱:

java邮件发送

对于163邮箱:

java邮件发送


在java中要进行邮件发送时,需要引入mail.jar,具体的代码如下:

public static void main(String[] args) throws Exception
{
    // 1 邮件服务器的设置
    Properties props = new Properties();
    props.setProperty("mail.host", "smtp.qq.com");
    // props.setProperty("mail.host", "smtp.163.com");
    props.setProperty("mail.smtp.auth", "true");
    
    // 2 账号和密码
    Authenticator authenticator = new Authenticator()
    {
        @Override
        protected PasswordAuthentication getPasswordAuthentication()
        {
            // 使用邮箱授权码,进行登录
            return new PasswordAuthentication("aaa@qq.com", "qq-authorization-code");
            // return new PasswordAuthentication("aaa@qq.com", "163-authorization-code");
        }
    };
    
    // 3 与邮件服务器建立连接:Session
    Session session = Session.getDefaultInstance(props, authenticator);
    
    // 4 编写邮件:Message
    Message message = new MimeMessage(session);

    // 4.1 发件人
    message.setFrom(new InternetAddress("aaa@qq.com"));
    // 4.2 收件人(to:收件人,cc:抄送,bcc:暗送(密送))
    message.setRecipient(RecipientType.TO, new InternetAddress("aaa@qq.com"));
    // 4.3 主题
    message.setSubject("主题:测试邮件");
    // 4.4 内容
    message.setContent("Hello World!", "text/html;charset=UTF-8");
    
    // 5 将消息进行发送:Transport
    Transport.send(message);
}

 

相关标签: 邮件发送