Java + 腾讯企业邮箱 + javamail + SSL 发送邮件

说实话腾讯的企业邮箱真心不错!

腾讯企业邮箱官网:http://exmail.qq.com/login/

新用户注册:http://exmail.qq.com/onlinesell/intro

点击开通

你跟着步骤走就行了,没啥难的,如果你没有域名,你就去买一个呗,也花不了多少钱的。

注册成功后,是这个页面,并且会有一个弹窗告诉你一些信息

现在你点击添加成员,因为你不添加成员的话你是无法发送邮件的。

完成后是这样

然后你打开腾讯企业邮箱登录界面,输入你刚才增加的成员邮箱的:登录名 + 密码,进去后是一个类似于普通QQ邮箱的界面

到这里邮箱部分就解决了,哦还有,腾讯会自动给你发一个邮件,

点开后是这个,

以前写过普通QQ邮箱的发送代码,我从没见过SSL,所以一开始全然不懂。。,但是上网查阅得知

随着各个Mail服务器对于安全的重视,纷纷采用基于SSL的Mail登陆方式进行发送和接收电子邮件

好了现在开始写代码。

有一个属性文件用来存储邮箱信息的

email.properties,放在src路径下面
1 e.account=你的邮箱用户名
2 e.pass=你的邮箱登录密码
3 e.from=你的邮箱用户名
4 e.host=smtp.exmail.qq.com
5 e.port=465
6 e.protocol=smtp
  1 import java.io.IOException;
  2 import java.io.InputStream;
  3 import java.io.UnsupportedEncodingException;
  4 import java.security.GeneralSecurityException;
  5 import java.util.Date;
  6 import java.util.Properties;
  7
  8 import javax.mail.Authenticator;
  9 import javax.mail.Message;
 10 import javax.mail.MessagingException;
 11 import javax.mail.PasswordAuthentication;
 12 import javax.mail.Session;
 13 import javax.mail.Transport;
 14 import javax.mail.internet.InternetAddress;
 15 import javax.mail.internet.MimeMessage;
 16
 17 import com.sun.mail.util.MailSSLSocketFactory;
 18
 19 public class SendEmailUtils {
 20
 21     private static String account;//登录用户名
 22     private static String pass;        //登录密码
 23     private static String from;        //发件地址
 24     private static String host;        //服务器地址
 25     private static String port;        //端口
 26     private static String protocol; //协议
 27
 28     static{
 29         Properties prop = new Properties();
 30         InputStream instream = ClassLoader.getSystemResourceAsStream("email.properties");
 31         try {
 32             prop.load(instream);
 33         } catch (IOException e) {
 34             System.out.println("加载属性文件失败");
 35         }
 36         account = prop.getProperty("e.account");
 37         pass = prop.getProperty("e.pass");
 38         from = prop.getProperty("e.from");
 39         host = prop.getProperty("e.host");
 40         port = prop.getProperty("e.port");
 41         protocol = prop.getProperty("e.protocol");
 42     }
 43     //用户名密码验证,需要实现抽象类Authenticator的抽象方法PasswordAuthentication
 44     static class MyAuthenricator extends Authenticator{
 45         String u = null;
 46         String p = null;
 47         public MyAuthenricator(String u,String p){
 48             this.u=u;
 49             this.p=p;
 50         }
 51         @Override
 52         protected PasswordAuthentication getPasswordAuthentication() {
 53             return new PasswordAuthentication(u,p);
 54         }
 55     }
 56
 57     private String to;    //收件人
 58     private String id;    //重置密码地址标识(这句话是我的业务需要,你们可以不要)
 59
 60     public SendEmailUtils(String to, String id) {
 61         this.to = to;
 62         this.id = id;
 63     }
 64
 65     public void send(){
 66         Properties prop = new Properties();
 67         //协议
 68         prop.setProperty("mail.transport.protocol", protocol);
 69         //服务器
 70         prop.setProperty("mail.smtp.host", host);
 71         //端口
 72         prop.setProperty("mail.smtp.port", port);
 73         //使用smtp身份验证
 74         prop.setProperty("mail.smtp.auth", "true");
 75         //使用SSL,企业邮箱必需!
 76         //开启安全协议
 77         MailSSLSocketFactory sf = null;
 78         try {
 79             sf = new MailSSLSocketFactory();
 80             sf.setTrustAllHosts(true);
 81         } catch (GeneralSecurityException e1) {
 82             e1.printStackTrace();
 83         }
 84         prop.put("mail.smtp.ssl.enable", "true");
 85         prop.put("mail.smtp.ssl.socketFactory", sf);
 86         //
 87         Session session = Session.getDefaultInstance(prop, new MyAuthenricator(account, pass));
 88         session.setDebug(true);
 89         MimeMessage mimeMessage = new MimeMessage(session);
 90         try {
 91             mimeMessage.setFrom(new InternetAddress(from,"XXX"));
 92             mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
 93             mimeMessage.setSubject("XXX账户密码重置");
 94             mimeMessage.setSentDate(new Date());
 95             mimeMessage.setText("您在XXX使用了密码重置功能,请点击下面链接重置密码:\n"
 96                     + "http://localhost:8080/XXX/ResetPassword?id="
 97                     + id);
 98             mimeMessage.saveChanges();
 99             Transport.send(mimeMessage);
100         } catch (MessagingException e) {
101             e.printStackTrace();
102         } catch (UnsupportedEncodingException e) {
103             e.printStackTrace();
104         }
105     }
106
107 }

下面是测试类

@Test
    public void test4(){
        SendEmailUtils s = new SendEmailUtils("[email protected]",
                “20160611121859OYI7W1”);
        s.send();
    }

下面是我收到的邮件

到此就完成了
时间: 06-11

Java + 腾讯企业邮箱 + javamail + SSL 发送邮件的相关文章

ubuntu 14.04 下evolution邮箱客户端设置(腾讯企业邮箱)

安装 evolution 有PPA可用,支持 Ubuntu 14.04 及衍生系统.打开终端,输入以下命令: sudo add-apt-repository ppa:fta/gnome3 sudo apt-get update sudo apt-get install evolution 卸载 evolution 命令: sudo apt-get remove evolution 配置: 在使用腾讯的邮箱时,都必须使用SSL加密 普通的qq邮箱 username 填写 邮箱名称 用户名:你的邮箱

腾讯企业邮箱 POP3/SMTP 设置

下午魅族MX2刷完机,原先配置的公司邮箱还要重新配置.有些地方需要改,找到了篇文章,如下: 腾讯企业邮箱支持通过客户端进行邮件管理.POP3/SMTP协议收发邮件服务器地址分别如下.接收邮件服务器:pop.exmail.qq.com (端口 110)发送邮件服务器:smtp.exmail.qq.com (端口 25)同时支持SSL加密方式登录,此时需要更改一下端口号. 配置成功!因此记之,以备不时之需. 主要参考:腾讯QQ企业邮箱POP3/SMTP设置

使用iPhone配置腾讯企业邮箱

?? 使用iPhone配置腾讯企业邮箱 这里教大家如何在iPhone上用自带的邮件app配置腾讯企业邮箱.主要分两种方式:POP3/SMTP协议或者IMAP协议.下面分别介绍两种协议的设置方法. POP3/SMTP协议 接收邮件服务器:pop.exmail.qq.com ,使用SSL,端口号995 发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465 海外用户可使用以下服务器 接收邮件服务器:hwpop.exmail.qq.com ,使用SSL,端口号995 发送邮件

腾讯企业邮箱

首选免费版做测试 邮箱申请地址 https://exmail.qq.com/onlinesell/intro 点击免费版-–微信扫描---设置管理账户---添加企业域名 我用的阿里域名,就在阿里域名下进行设置了 当解析生效后,点击确定直接进入腾讯企业邮箱后台 添加一个账户发送邮件做实验 添加账户完成,现在给我自己发送邮件看看能否成功 写邮件

腾讯企业邮箱免费版

3.4 腾讯企业邮箱免费版 使用自己域名的邮箱.比如公司的邮箱域名. 我下面以我的域名来操作. 1.首先自己先有个域名(我之前注册的域名在西部数码上购买的一年才39,www.caimz.cn). 2.其次就是去QQ企业邮箱免费版申请一个账号. 然后登陆管理界面,此时会收到一个域名绑定的提示.我的如下: 然后我要去我的域名管理的网站上去填写的我的申请的MX记录. 请您先登录到域名解析页面登录西部数码官网后台管理中心---业务管理---域名管理-----管理---域名解析 添加两条. 退出,等待生效

解析腾讯企业邮箱到自己域名,设置mail的cname

之前注册了腾讯企业邮的免费邮箱,后来想把企业邮箱和域名绑定起来,发现了一些问题. 先来看正常的部分,假设你已经注册过了腾讯企业邮箱免费版,并且已经绑定好了域名. 然后在域名提供商那里设置域名解析的MX记录. 大家可以看到,企业邮箱其实与你的服务器没有任何关系,你可以选择任何一家的企业邮箱,譬如阿里云企业邮箱,网易的,或者腾讯的.我比较推荐阿里云的. 你只需要注册完企业邮箱后,绑定上你的域名,然后在这个地方设置MX记录来指向你的企业邮箱使用说明里要求设置的地址即可.一般的还需要设置一个txt记录来

腾讯企业邮箱申请邀请码 F6224C3B

如果您正好要申请腾讯免费企业邮箱,请使用该邀请码(F6224C3B),帮助我提高限额!!谢谢 如果您正好要申请腾讯免费企业邮箱,请使用该邀请码(F6224C3B),帮助我提高限额!!谢谢 如果您正好要申请腾讯免费企业邮箱,请使用该邀请码(F6224C3B),帮助我提高限额!!谢谢 如果您正好要申请腾讯免费企业邮箱,请使用该邀请码(F6224C3B),帮助我提高限额!!谢谢 如果您正好要申请腾讯免费企业邮箱,请使用该邀请码(F6224C3B),帮助我提高限额!!谢谢

腾讯企业邮箱配置

POP3/SMTP协议 接收邮件服务器:pop.exmail.qq.com (端口 110),使用SSL,端口号995 发送邮件服务器:smtp.exmail.qq.com (端口 25),使用SSL,端口号465 IMAP协议  接收邮件服务器:imap.exmail.qq.com  (端口 143),使用SSL,端口号993 发送邮件服务器:smtp.exmail.qq.com (端口 25),使用SSL,端口号465

GITLAB email不发送腾讯企业邮箱解决方案

废话不说,直接给思路 gitlab重部署后新加用户不发送激活邮件,配置如下: gitlab_rails['smtp_enable']=true gitlab_rails['smtp_address']="smtp.exmail.qq.com" gitlab_rails['smtp_port']=465 gitlab_rails['smtp_user_name']="[email protected]" gitlab_rails['smtp_password']=&q

POP/IMAP/SMTP服务器地址——企业邮箱商务版(含海外设置)

1.根据您企业邮箱的线路,选择合适的POP/SMTP/IMAP服务. 中国大陆 海外 POP3 pop-ent.21cn.com pop-enthk.21cn.com SMTP smtp-ent.21cn.com smtp-enthk.21cn.com IMAP imap-ent.21cn.com imap-enthk.21cn.com 2.根据加密情况,选择合适的端口号. 无加密 SSL/TSL POP3 110 995 SMTP 25 465 IMAP 143 993