最近项目用到邮件系统,开始了解javaMail。。。话不多说先上代码:

pom依赖:

<!--    邮件  https://mvnrepository.com/artifact/javax.mail/mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.5.0-b01</version>
        </dependency>

工具类:

import java.util.Date;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MailUtils {
    //发件人地址
    private static String senderAddress = "1234567891@163.com";
    //收件人地址
    private static String recipientAddress  = "123456789@qq.com";
    //发件人账户
    public static String senderAccount = "1234567891@163.com";
    //发件人授权码
    public static String auth = "xxxxxxx";
    //邮件主题
    public static String subject = "xxxxxx通知";
    //邮件正文
    public static String content = "您有一则xxxxx!";
    
    public static void main(String [] args) throws MessagingException {
        //1.连接邮件服务器的配置参数
        Properties properties = new Properties();
        //设置用户认证方式
        properties.setProperty("mail.smtp.auth", "true");
        //设置传输协议
        properties.setProperty("mail.transport.protocol", "smtp");
        //设置发件人的SMTP服务器地址
        properties.setProperty("mail.smtp.host", "smtp.163.com");
        //properties.setProperty("mail.smtp.port", "465");
        
        //2.创建定义整个应用程序所需的环境信息的Session对象
        Session session = Session.getInstance(properties);
        session.setDebug(true);
        //3.创建邮件的实例对象
        MimeMessage msg = getMimeMessage(session);
        //4.根据session对象获取邮件传输对象
        Transport transport = session.getTransport("smtp");
        transport.connect("smtp.163.com", senderAccount, auth);
        //发送邮件,并发送到所有收件人地址,message.getAllRecipients()获取到创建又见对象时添加的所有收件人抄送人密送人
        transport.sendMessage(msg, msg.getAllRecipients());
        //如果只想发送给指定的人,可以如下写法
        //transport.sendMessage(msg, new Address[]{new InternetAddress("xxx@qq.com")});
        //5.关闭邮件链接
        transport.close();
        
    }
    
        /**
         * 獲得創建一封郵件的實例對象
         * @param session
         * @return
         * @throws MessagingException
         * @throws AddressException
         */
        public static MimeMessage getMimeMessage(Session session) throws MessagingException {
            //創建郵件的實例對象
            MimeMessage msg = new MimeMessage(session);
            //设置发件人地址
            msg.setFrom(new InternetAddress(senderAddress));
            
            /*
             * 设置收件人地址(可以增加多个收件人,抄送人,密送)
             * MimeMessage.RecipientType.TO 发送
             * MimeMessage.RecipientType.CC 抄送
             * MimeMessage.RecipientType.BCC 密送
             */
            msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(recipientAddress));
            //设置邮件主题
            msg.setSubject(subject, "UTF-8");
            //设置邮件正文
            msg.setContent(content, "text/html;charset=UTF-8");
            //设置邮件的发送时间默认立即发送
            msg.setSentDate(new Date());
            return msg;
        }
}

需要注意首先发件人邮箱需要设置开启POP3/SMTP/IMAP协议

transport.connect("smtp.163.com", senderAccount, auth);这里的参数注意第三个不是密码

javaMail的使用以及trying to connect to host "1xxx@163.com", port 25, isSSL false异常的更多相关文章

  1. ssh: connect to host gitlab.alpha.com port 22: Network is unreachable

    在这里只说明我遇到的问题和解决方法,可能并不能解决你遇到的问题: git clone git@gitlab.alpha.com:ipcam/ambarella.gitCloning into 'amb ...

  2. $ ssh -T git@github.com ssh: connect to host ssh.github.com port 22: Connection timed out

    在C:/用户/用户名/.ssh中添加几个文件 之前的电脑生成都是四个文件,分别是 id_rsa  id_rsa.pub  config known_hosts 不知道为什么在另一台电脑上却生成两个文件 ...

  3. Could not connect to SMTP host: localhost, port: 25;

    1.错误描写叙述 DEBUG: setDebug: JavaMail version 1.3.3 DEBUG: getProvider() returning javax.mail.Provider[ ...

  4. selenium在Eclipse中打开fireFox浏览器是报报错connect to host 127.0.0.1 on port 7055

    1.相信很多同学刚接触selenium时,在Eclipse中打开fireFox浏览器是报报错: org.openqa.selenium.firefox.NotConnectedException: U ...

  5. Selenium2学习-038-firefox、webdriver版本不对称问题解决:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055

    今天有个朋友在群里问,为何脚本运行不通过,其脚本操作步骤简单描述如下: 1.启动火狐浏览器 2.打开百度 3.查询框输入关键字 4.点击按钮[百度一下] 脚本挺简单的,其给出的应用报错信息如下所示: ...

  6. Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "124.202.213.70" failed: [10054] Connection reset by peer [MsgId: MERR-27780]

    解决方案一: 备注: 此方案如果请求响应时间太长,勾选"WinInet replay instead of Sockets(Windows only)"将会导致如下错误:

  7. 解决org.openqa.selenium.WebDriverException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms org.springframework.beans.BeanInstantiation

    解决方法为将selenium-server-standalone-2.37.0.jar升级至selenium-server-standalone-2.41.0.jar即可. 下载地址:http://s ...

  8. WebDriver:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms

    今天尝试最新的webDriver与fireFox搭配: 运行代码时出现如下的问题,但是浏览器却可以打开: org.openqa.selenium.firefox.NotConnectedExcepti ...

  9. svn :Can't connect to host *.*.*.*': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    Can't connect to host *.*.*.*': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败. -------------------------------- ...

随机推荐

  1. swing 嵌入浏览器

    需求要在swing加一个浏览器,在网上找了一个挺方便的方法,现在把代码贴上来 力求方便. package com.vtradex.page.shipment; import static javafx ...

  2. mycat数据中间件、nginx

      MyCat & Nginx  课程目标 目标1:理解MyCat分片,能够配置MyCat分片 目标2:掌握Nginx的安装与静态网站部署 目标3:掌握Nginx的静态网站部署 目标4:理解N ...

  3. swoole结合支持thinkphp 5.0版本

    安装swoole pecl install swoole 修改PHP配置文件php.ini加入 extension=swoole.so 有可能不需要人工去加,安装时自动加入进来了, 查看swoole扩 ...

  4. cxgrid主从表的从表数据小于主表总数的问题

    当从表的数据移动需要和数据源记录同步时,会发生一现象:从表中设定的keyfield记录不连续,显示就会中断. 这样要设置从表的排序,按照主表的关联键在内存表里进行排序 indexFieldNames设 ...

  5. 【读书笔记】segment routing mpls数据平面-1

  6. <Dare To Dream>团队项目用户验收评审

    实验十二 团队作业8—团队项目用户验收评审 任务1:团队作业Beta冲刺 Beta冲刺第一天:http://www.cnblogs.com/Dare-To-Dream/p/9226994.html B ...

  7. java方法体

    执行顺序: 静态代码块 mian方法 构造代码块 构造方法 静态代码块只执行一次.

  8. ORA-12541:TNS:无监听程序

    1.OracleServiceORCL确认已经在服务中启动 2.OracleOraDb11g_home1TNSListener确认已经在服务中启动 3.服务端listener.ora和tnsnames ...

  9. gitlab中批量删除本地以及远程tag的操作

    git 批量删除标签# 删除所有远程标签git show-ref --tag | awk '{print ":" $2}' | xargs git push origin # 删除 ...

  10. 4. Go常量

    常量就是那些不可以改变的值 Go语言中定义常量的方式: const a = "admin" 则 a 就是一个常量,但实际上其后面的 "admin" 也是一个字符 ...