zoukankan      html  css  js  c++  java
  • 使用JavaMail发送邮件,465端口开启ssl加密传输

    package com.wangxin.test;
    
    import java.security.Security;
    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.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    /**
     * javaMail的邮件工具类
     * @author wangXgnaw
     *
     */
    public class MailUtil {
    
        /**
         * 使用加密的方式,利用465端口进行传输邮件,开启ssl
         * @param to    为收件人邮箱
         * @param message    发送的消息
         */
        public static void sendEmil(String to, String message) {
            try {
                Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
                final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
                //设置邮件会话参数
                Properties props = new Properties();
                //邮箱的发送服务器地址
                props.setProperty("mail.smtp.host", "smtp.sina.com");
                props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
                props.setProperty("mail.smtp.socketFactory.fallback", "false");
                //邮箱发送服务器端口,这里设置为465端口
                props.setProperty("mail.smtp.port", "465");
                props.setProperty("mail.smtp.socketFactory.port", "465");
                props.put("mail.smtp.auth", "true");
                final String username = "发送者邮箱用户名";
                final String password = "发送者邮箱密码或者邮箱授权码";
                //获取到邮箱会话,利用匿名内部类的方式,将发送者邮箱用户名和密码授权给jvm
                Session session = Session.getDefaultInstance(props, new Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });
                //通过会话,得到一个邮件,用于发送
                Message msg = new MimeMessage(session);
                //设置发件人
                msg.setFrom(new InternetAddress("发件人邮箱"));
                //设置收件人,to为收件人,cc为抄送,bcc为密送
                msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
                msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(to, false));
                msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(to, false));
                msg.setSubject("邮件主题");
                //设置邮件消息
                msg.setText(message);
                //设置发送的日期
                msg.setSentDate(new Date());
                
                //调用Transport的send方法去发送邮件
                Transport.send(msg);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
        
    }
  • 相关阅读:
    mysql去重
    java 实现一套流程管理、流转的思路(伪工作流)
    js模块加载框架 sea.js学习笔记
    使用js命名空间进行模块式开发
    二叉树的基本操作实现(数据结构实验)
    学生信息管理系统-顺序表&&链表(数据结构第一次作业)
    计算表达式的值--顺序栈(数据结构第二次实验)
    使用seek()方法报错:“io.UnsupportedOperation: can't do nonzero cur-relative seeks”错误的原因
    seek()方法的使用
    python中如何打印某月日历
  • 原文地址:https://www.cnblogs.com/wangxinblog/p/7288931.html
Copyright © 2011-2022 走看看