java邮件发送

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

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

对于QQ邮箱:

java邮件发送_第1张图片

对于163邮箱:

java邮件发送_第2张图片


在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("[email protected]", "qq-authorization-code");
            // return new PasswordAuthentication("[email protected]", "163-authorization-code");
        }
    };
    
    // 3 与邮件服务器建立连接:Session
    Session session = Session.getDefaultInstance(props, authenticator);
    
    // 4 编写邮件:Message
    Message message = new MimeMessage(session);

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

 

你可能感兴趣的:(Java,邮件发送)