【黑马程序员济南中心】使用javamail通过QQ邮箱发送邮件

在项目中,常常使用某一个邮箱地址作为项目对外的公共发送邮件的地址,QQ邮箱被使用的概率不大,但是QQ邮箱的配置使用却别其他邮箱较为复杂,下面做一个简单的demo来演示如何配置并使用QQ邮箱发送邮件

1.为QQ邮箱开通POP3/SMTP服务

【黑马程序员济南中心】使用javamail通过QQ邮箱发送邮件_第1张图片

2.开启的时候需要使用你注册的手机号向腾讯发送一个短信(按照上面提示发送),发送成功之后点击“我已发送”

【黑马程序员济南中心】使用javamail通过QQ邮箱发送邮件_第2张图片

3.验证成功之后,QQ会返回一个授权码

【黑马程序员济南中心】使用javamail通过QQ邮箱发送邮件_第3张图片

4.在项目中引入javamail相关jar包

    demo中使用的是javax.mail-1.5.1.jar版本

5.java代码如下:

public class MailUtils2 {

        private static String smtp_host ="smtp.qq.com"; // QQ SMTP服务

        private static String username = "使用发件人邮箱地址"; // 邮箱账户

        private static String password = "iiotqaasiaiabfgc"; // 邮箱授权码-该授权码就是在开启QQPOP3/SMTP服务时返回的那串激活码

        private static String from = "使用发件人邮箱地址"; // 邮箱账户

        public static void sendMail(String subject, String content, String to) {

                //设置发送邮件的properties

                Properties props = new Properties();

                props.setProperty("mail.smtp.host", smtp_host);

                props.setProperty("mail.transport.protocol", "smtp");

                props.setProperty("mail.smtp.auth", "true");

//                QQ 邮箱需要 SSL 加密

                props.setProperty("mail.smtp.auth", "true");

                props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

                props.setProperty("mail.smtp.port", "465");

                props.setProperty("mail.smtp.socketFactory.port", "465");


                //准备连接对象

                Session session = Session.getInstance(props);

                //创建邮件信息

                Message message = new MimeMessage(session);

                try {

                        message.setFrom(new InternetAddress(from));//设置发件人

                        message.setRecipient(RecipientType.TO, new InternetAddress(to));//设置收件人以及收件人地址

                        message.setSubject(subject);//邮件主题

                        message.setContent(content, "text/html;charset=utf-8");//支持富文本内容

                        Transport transport = session.getTransport();

                        transport.connect(smtp_host, username, password);

                        transport.sendMessage(message, message.getAllRecipients());//发送邮件

                } catch (Exception e) {

                        e.printStackTrace();

                        throw new RuntimeException("邮件发送失败...");

                }

        }

        public static void main(String[] args) {

                //测试

                sendMail("测试邮件", "你好a", "收件人邮箱地址");

        }

}

5.邮箱可以正常收到


【黑马程序员济南中心】使用javamail通过QQ邮箱发送邮件_第4张图片

你可能感兴趣的:(【黑马程序员济南中心】使用javamail通过QQ邮箱发送邮件)