zoukankan      html  css  js  c++  java
  • 使用QQ邮箱SMTP服务的javamail配置

    最近做一个小项目要用到JAVA的邮箱的发送功能。遇到一些坑这里记录分享一下:QQ群交流:697028234

    1、QQ邮箱一定要设置开通SMTP/POP这项。并生成授权码。

    2、用MAVEN生成一个QUICKSTART项目,测试用的哈。加入依赖如下:

    <dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <version>1.4.7</version>
    </dependency>
    

     3、在main方法里加入如下代码测试成功的哈。

    package com.sendmail.sendmail_test;
    
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.Message.RecipientType;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    /**
     * Hello world!
     *
     */
    public class App 
    {
        public static void main( String[] args ) throws MessagingException
        {
        	
        	// 配置发送邮件的环境属性
            final Properties props = new Properties();
            /*
             * 可用的属性: mail.store.protocol / mail.transport.protocol / mail.host /
             * mail.user / mail.from
             */
            // 表示SMTP发送邮件,需要进行身份验证
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.host", "smtp.qq.com");
            props.put("mail.transport.protocol", "smtp");
            props.put("mail.debug", "true");
    //遇到最多的坑就是下面这行,不加要报“A secure connection is requiered”错。 props.put("mail.smtp.starttls.enable", "true"); // 发件人的账号 props.put("mail.user", "XXXX@qq.com"); // 访问SMTP服务时需要提供的密码 props.put("mail.password", "这里是QQ邮箱授权码"); // 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { // 用户名、密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); // 创建邮件消息 MimeMessage message = new MimeMessage(mailSession); // 设置发件人 InternetAddress form = new InternetAddress( props.getProperty("mail.user")); message.setFrom(form); // 设置收件人 InternetAddress to = new InternetAddress("3489417@qq.com"); message.setRecipient(RecipientType.TO, to); // 设置抄送,抄送和密送如果不写正确的地址也要报错。最好注释不用。 // InternetAddress cc = new InternetAddress(""); // message.setRecipient(RecipientType.CC, cc); // // // 设置密送,其他的收件人不能看到密送的邮件地址 // InternetAddress bcc = new InternetAddress(""); // message.setRecipient(RecipientType.CC, bcc); // 设置邮件标题 message.setSubject("JAVA测试邮件"); // 设置邮件的内容体 message.setContent("<a href='http://www.XXX.org'>测试的邮件</a>", "text/html;charset=UTF-8"); // 发送邮件 Transport.send(message); } }
  • 相关阅读:
    mooc-IDEA 项目/文件之间跳转--002
    003--PowerDesigner创建索引与外键
    002--PowerDesigner显示注释comment
    001--PowerDesigner连接MySQL
    如果说需要注册数据中心,这样才能使用demo部署数据中心license证需要申请,使用云之间-工作流程......
    eas之如何获取当前用户
    eas之f7
    eas之打开窗体
    eas之怎么设置单据保存或者提交完不跳到下个新增页面
    eas之EntityViewInfo对象mainQuery中查询条件
  • 原文地址:https://www.cnblogs.com/draculaqk/p/7776419.html
Copyright © 2011-2022 走看看