美文网首页
利用javaMail实现QQ邮箱的发件

利用javaMail实现QQ邮箱的发件

作者: iGroove | 来源:发表于2017-10-18 19:56 被阅读0次

经过两个小时的测试,终于改掉了 530 Error,然后可以把自己的邮件发出去,内心还是有点小几栋的。

一开始总是遇到这个异常
Caused by: javax.mail.AuthenticationFailedException: 530 Error: A secure connection is requiered(such as ssl).More information at http://service.mail.qq.com/cgi-bin/help?id=28

然后点了这个链接之后发现是因为客户端设置没有开启POP3/SMTP的SSL加密..没有利用SSL进行授权 [1]

解决这两个问题后问题就得到了解决
利用这个功能呢,我们可以实现验证、激活、提示的功能以及能利用邮箱办到的事。具体看个人发挥了。比如说:
最重要的是 你 想把要说的话 告诉 她 嘿嘿

具体实现mail发邮件功能如下:

  • 准备工作

在项目中导入mail.jar 没有的可以点这里
然后把jar包放入项目lib中

下载mail.jar
  • 代码实现

1.创建Properties对象,设置相关属性和发送协议

Properties props = new Properties();
props.setxxx();

2.设置SSL

MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);

3.创建验证器,设置个人账号和密码

Authenticator auth = new Authenticator() {
    public PasswordAuthentication getPasswordAuthentication() {
        //设置发送人的帐号和密码
        return new PasswordAuthentication("xxx@qq.com", "授权码");
    }
授权码

4.创建session会话

Session session = Session.getInstance(props, auth);

5.创建Message邮件内容

Message message = new MimeMessage(session);
//设置发送者
message.setFrom(new InternetAddress("xxx@qq.com"));
//设置发送方式与接收者
message.setRecipient(RecipientType.TO, new InternetAddress(email));//email填收件人邮箱
//设置邮件主题
message.setSubject("用户激活");
//设置邮件内容
message.setContent(emailMsg, "text/html;charset=utf-8");//emailMsg邮件内容

6.发送

Transport.send(message);
  • 源码
    public static void sendMail(String email, String emailMsg)
            throws AddressException, MessagingException, GeneralSecurityException {
        // 1.创建一个程序与邮件服务器会话对象 Session
        Properties props = new Properties();
        //设置发送的协议
        props.setProperty("mail.transport.protocol", "SMTP");
        props.setProperty("mail.smtp.auth", "true");// 指定验证为true
        //设置发送邮件的服务器
        props.setProperty("mail.host", "smtp.qq.com");
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);
        // 创建验证器
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                //设置发送人的帐号和密码
                return new PasswordAuthentication("xxx@qq.com", "授权码");
            }
        };

        Session session = Session.getInstance(props, auth);

        // 2.创建一个Message,它相当于是邮件内容
        Message message = new MimeMessage(session);

        //设置发送者
        message.setFrom(new InternetAddress("xxx@qq.com"));

        //设置发送方式与接收者
        message.setRecipient(RecipientType.TO, new InternetAddress(email));

        //设置邮件主题
        message.setSubject("用户激活");

        //设置邮件内容
        message.setContent(emailMsg, "text/html;charset=utf-8");

        // 3.创建 Transport用于将邮件发送
        Transport.send(message);
}


  1. ^什么是授权码,它又是如何设置?

相关文章

  • 利用javaMail实现QQ邮箱的发件

    经过两个小时的测试,终于改掉了 530 Error,然后可以把自己的邮件发出去,内心还是有点小几栋的。 一开始总是...

  • Java发送Email邮件问题

    SpringBoot项目整合JavaMail 采用smtp协议发送邮箱 邮箱采用的是QQ邮箱在windows环境...

  • PHP下利用PHPMailer配合QQ邮箱实现发邮件

    今天尝试了下利用php实现邮件的发送。在这里是利用PHPMailer和QQ邮箱实现的。 1 QQ邮箱配置 首先进入...

  • flask-邮件发送

    利用flask-mail实现邮件发送 qq邮箱版 网易邮箱版

  • ubuntu16 使用命令发送邮件

    前提 有两个QQ邮箱,使用其中一个当发件服务器,发给另一个qq,打开发件的qq邮箱账户设置->生成受权码,这个受权...

  • 实现利用QQ邮箱发送邮件

    在共有的common.php加入公共文件 //QQ邮箱配置function sendMail($to, $titl...

  • javaMail发送qq邮件(一):QQ邮箱的配置

    有时候我们的强大都是在不断的模仿中壮大的。 从大学的时候就接触到老师说怎么怎么用JavaMail发送邮件,但是直到...

  • 重温QQ邮箱

    中午,用电脑发了QQ邮件,重温了下QQ邮箱。回顾,已发件里,看到18年左右工作用邮箱的增多,看到16年硕士研究生选...

  • 重温QQ邮箱

    中午,用电脑发了QQ邮件,重温了下QQ邮箱。回顾,已发件里,看到18年左右工作用邮箱的增多,看到16年硕士研究生选...

  • Jenkins构建后,配置邮箱

    一、系统配置邮箱 1、系统管理-系统设置-Jenkins location 发件箱需要进行设置,本文章以qq邮箱为...

网友评论

      本文标题:利用javaMail实现QQ邮箱的发件

      本文链接:https://www.haomeiwen.com/subject/tgpeuxtx.html