博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaMail实现邮箱之间发送邮件功能
阅读量:5149 次
发布时间:2019-06-13

本文共 4362 字,大约阅读时间需要 14 分钟。

package com.minstone.message.util;import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import org.springframework.stereotype.Component;@Componentpublic class SendmailUtil {    // 设置服务器    private static String KEY_SMTP = "mail.smtp.host";//    private static String VALUE_SMTP = "smtp.163.com";//    private static String VALUE_SMTP = "smtp.qq.com";//    private static String VALUE_SMTP = "smtp.exmail.qq.com";    private static String VALUE_SMTP = "smtp.sina.com.cn";    // 服务器验证    private static String KEY_PROPS = "mail.smtp.auth";    private static boolean VALUE_PROPS = true;    // 发件人用户名、密码//    private String SEND_USER = "abc25660663";//    private String SEND_USER = "1481596361";//    private String SEND_USER = "hongxy";    private String SEND_USER = "mingdong123abc";    //发件人邮箱//    private String FROMADDRESS=SEND_USER+"@163.com";//    private String FROMADDRESS=SEND_USER+"@qq.com";//    private String FROMADDRESS=SEND_USER+"@minstone.com.cn";    private String FROMADDRESS=SEND_USER+"@sina.com";    private String SEND_UNAME = "政务服务中心";    //邮箱密码//    private String SEND_PWD = "25660663abc.";//    private String SEND_PWD = "313131abc.";//    private String SEND_PWD = "25660663Abc.";    private String SEND_PWD = "mingdong123abc";        // 建立会话    private MimeMessage message;    private Session s;     /*     * 初始化方法     */    public SendmailUtil() {        Properties props = System.getProperties();        // 连接协议        props.put("mail.transport.protocol", "smtp");        props.put(KEY_SMTP, VALUE_SMTP);        props.put(KEY_PROPS, "true");//true一定要加双引号        props.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用        props.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息        s =  Session.getDefaultInstance(props, new Authenticator(){              protected PasswordAuthentication getPasswordAuthentication() {                  return new PasswordAuthentication(SEND_UNAME, SEND_PWD);              }});        s.setDebug(true);        message = new MimeMessage(s);    }     /**     * 发送邮件     *      * @param headName     *            邮件头文件名     * @param sendHtml     *            邮件内容     * @param receiveUser     *            收件人地址     */    public void doSendHtmlEmail(String headName, String sendHtml,            String receiveUser){        try {            // 发件人            InternetAddress from = new InternetAddress(FROMADDRESS);//发送人地址            message.setFrom(from);            // 收件人            InternetAddress to = new InternetAddress(receiveUser);            message.setRecipient(Message.RecipientType.TO, to);            // 邮件标题            message.setSubject(headName);            String content = sendHtml.toString();            // 邮件内容,也可以使纯文本"text/plain"            message.setContent(content, "text/html;charset=UTF-8");            message.setSentDate(new Date());            message.saveChanges();            Transport transport = s.getTransport("smtp");            //这种方式应用于163网易邮箱和QQ邮箱,最后一个参数是授权码,网易的授权码可以自动设置,而QQ邮箱的授权码需通过短信才可收到//            transport.connect(FROMADDRESS,"25660663abc");//            transport.connect(FROMADDRESS,"yigoehcqlbxkhfid");            //QQ企业邮箱,新浪邮箱,由于企业QQ邮箱和新浪邮箱开通POP3/SMTP/IMAP服务时,不需要授权码            transport.connect(VALUE_SMTP, FROMADDRESS, SEND_PWD);                        // 发送            transport.sendMessage(message, message.getAllRecipients());            transport.close();            System.out.println("send success!");        } catch (AddressException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (MessagingException e) {            e.printStackTrace();        }    }     public static void main(String[] args) {        SendmailUtil se = new SendmailUtil();        se.doSendHtmlEmail("邮件标题1111", "邮件内容", "1481596361@qq.com");    }}

 

以上例子是JavaMail实现邮箱之间发送邮件功能,需要注意的是发送邮箱是否需要授权码,需要授权码书写的方式和不需要授权码书写的方式不一致,主要区别在

transport.connect方法的参数,而接收邮件的邮箱却不规定,任意邮箱都可以。 需要导入一些包: 具体根据自身的情况进行导入,一般来说mail.jar或者javax.mail.jar和activation.jar需导入

转载于:https://www.cnblogs.com/xuegu/p/6431323.html

你可能感兴趣的文章
JS对象继承篇
查看>>
有关java的uri的一些理解
查看>>
正确使用Enum的FlagsAttribute
查看>>
Linux urandom&random
查看>>
wso2 使用配置
查看>>
关于微软必应词典客户端的案例分析
查看>>
【转载】GDI 映像方式 之 SetViewportExtEx 与 SetWindowExtEx 解析
查看>>
递增输出带表头结点的单链表元素
查看>>
读取文件的乱码问题
查看>>
windows 常用操作
查看>>
算法(第四版)C# 习题题解——1.4
查看>>
软件测试第一次作业
查看>>
angular中处理多个异步请求的方法汇总
查看>>
一个关于vue+mysql+express的全栈项目(五)------ 实时聊天部分socket.io
查看>>
jQgrid合并行
查看>>
TopK
查看>>
网络协议分析工具wireshark
查看>>
FlowPortal-BPM——功能:判断数据库表中字段是否重复并阻止提交或保存
查看>>
打开终端,提示 “无法加载文件C:\XXX\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本” 的错误...
查看>>
【Web技术学习】JS学习笔记
查看>>