专栏首页码字搬砖腾讯企业邮发送邮件 java版

腾讯企业邮发送邮件 java版

背景: 由于spark streaming程序需要保证 1*24 小时,不间断运行的,为了第一时间知道程序是否出错,所以采用了出错发送邮件这一策略,而公司恰恰又使用了腾讯企业邮,网上也有一些关于腾讯企业邮的例子,但不那么尽人意,s所以特地在此整理一下!

各位看官,让我们一起畅游在代码的海洋里吧!嘎嘎嘎。。。

package test.util;

import com.sun.mail.util.MailSSLSocketFactory;
import org.apache.log4j.Logger;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.GeneralSecurityException;
import java.util.Date;
import java.util.Properties;

 /**
 * Created by shengjk1 on 2016/11/4.
 * Blog Address:http://blog.csdn.net/jsjsjs1789
 */
public class SendEmailUtils {
    private static Logger logger = Logger.getLogger("SendEmailUtils.class");

    //用户名密码验证,需要实现抽象类Authenticator的抽象方法PasswordAuthentication
    static class MyAuthenricator extends Authenticator{
        String u = null;
        String p = null;
        public MyAuthenricator(String u,String p){
            this.u=u;
            this.p=p;
        }
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(u,p);
        }
    }

    public static  void send(String title,String context){
        Properties prop = new Properties();
        //协议
        prop.setProperty("mail.transport.protocol", "smtps");
        //服务器
        prop.setProperty("mail.smtp.host", "smtp.exmail.qq.com");
        //端口
        prop.setProperty("mail.smtp.port", "25");
        //使用smtp身份验证
        prop.setProperty("mail.smtp.auth", "true");
        //使用SSL,企业邮箱必需!
        //开启安全协议
        MailSSLSocketFactory sf = null;
        try {
            sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
        } catch (GeneralSecurityException e1) {
            e1.printStackTrace();
        }
//        prop.put("mail.smtp.ssl.enable", "true");
        prop.put("mail.smtp.starttls.enable", "true");
        prop.put("mail.smtp.ssl.socketFactory", sf);
        //发件人,进行权限认证
        Session session = Session.getDefaultInstance(prop, new MyAuthenricator("shengjk1@qq.cn", "shengjk1123"));
//        session.setDebug(true);
        MimeMessage mimeMessage = new MimeMessage(session);
        try {
        //发件人地址
            mimeMessage.setFrom(new InternetAddress("shengjk1@qq.cn",""));
            //收件人的地址
            mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("shengjk1@qq.cn"));
            mimeMessage.setSubject(title);
            mimeMessage.setSentDate(new Date());
            mimeMessage.setText(context);
            mimeMessage.saveChanges();
            Transport.send(mimeMessage);
        } catch (Exception e) {
            logger.error("scan 邮件异常 " +e);

        }
    }
    public static void main(String[] args) {
        SendEmailUtils.send("scanError","hahahahhaha");


}

pom.xml

<dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <version>1.4</version>
    </dependency>
    <dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>mailapi</artifactId>
      <version>1.5.5</version>
    </dependency>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • httpClient 发送压缩文件

    shengjk1
  • HttpClient post方式,添加请求参数

    shengjk1
  • 用大顶堆实现数据排序

    堆分为大顶堆和小顶堆 大顶堆 每个节点的值都大于或等于其左右孩子节点的值 小顶堆 每个节点的值都小于或等于其左右孩子节点的值

    shengjk1
  • Java发送邮件(含附件)

    前几天写了一个Java发送邮件的帮助类i,可以发送QQ和163的邮箱,也可以发送附件,写个一个主要的方法,其他的可以自己封装。代码如下:

    付威
  • 历史上第一位从事游戏开发与设计的女程序员

    编者按:一直以来,女性软件开发人员数量稀少,尤其是在早期人们的刻板印象中,她们的工作能力、学历高低很容易其备受质疑的方面。实际上,家庭环境、学校教育、婚姻生活很...

    企鹅号小编
  • java文件转二进制

    IT云清
  • 高手过招:用SQL解决环环相扣的刑侦推理问题(苏旭辉版本)

    本文是继 杨长老 刑侦高考:如何用SQL解决环环相扣的刑侦推理问题 之后,苏旭辉的一个版本,希望大家能够在高手的过招中,看到喜爱、坚持、执着与技艺。

    数据和云
  • 文件夹复制

     public static void copyDirectory(File src, File dest) throws ...

    秋白
  • javaSE之如何将一个文件复制到另一个文件

    1 /* 2 * (1). 文件字符输入,输出流 3 * 文件字节输入,输出流的read和write方法使用 4 * 字...

    Gxjun
  • [Java IO]02_字节流

    概要 字节流有两个核心抽象类:InputStream 和 OutputStream。所有的字节流类都继承自这两个抽象类。 InputStream 负责输入,Ou...

    静默虚空

扫码关注云+社区

领取腾讯云代金券