发现腾讯的企业邮箱不错,弄了个,下面是介绍使用java进行发送邮件的操作。

参考:

1:如何设置IMAP、POP3/SMTP及其SSL加密方式? _腾讯企业邮箱帮助中心  http://service.exmail.qq.com/cgi-bin/help?subtype=1&id=28&no=1000585

2:Java + 腾讯企业邮箱 + javamail + SSL 发送邮件 - 小LUA - 博客园  https://www.cnblogs.com/LUA123/p/5575134.html

步骤:

1:建立email.properties

e.account=zc@zcyoung.cn
e.pass=******
e.host=smtp.exmail.qq.com
e.port=465
e.protocol=smtp

 下图为腾讯帮助中心的截图:

QQ图片20171229181119.jpg

 2:建立发送类

package cn.zcyoung.home.utils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import com.sun.mail.util.MailSSLSocketFactory;
public class SendEmailUtil {
    private static String account;     //登录用户名
    private static String pass;        //登录密码
    private static String host;        //服务器地址(邮件服务器)
    private static String port;        //端口
    private static String protocol;    //协议
    
    public static void main(String[] args) {
  System.out.println("启动测试");
  if(new SendEmailUtil("******@qq.com", "欢迎注册科技小屋,潮流的科技社区!", "谢谢您的注册。", null).send())
   System.out.println("发送成功");
  else System.out.println("发送失败");
 }
    
    static{
        Properties prop = new Properties();
        try {
            prop = PropertiesLoaderUtils.loadAllProperties("email.properties");
        } catch (Exception e) {
            System.out.println("加载属性文件失败");
        }
        account = prop.getProperty("e.account");
        pass = prop.getProperty("e.pass");
        host = prop.getProperty("e.host");
        port = prop.getProperty("e.port");
        protocol = prop.getProperty("e.protocol");
    }
    
    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);  
        }  
    }
    
    private String to;         //收件人
    private String subject;    //主题
    private String content;    //内容
    private String fileStr;    //附件路径
    public SendEmailUtil(String to, String subject, String content, String fileStr) {
        this.to = to;
        this.subject = subject;
        this.content = content;
        this.fileStr = fileStr;
    }

    public boolean send(){
        Properties prop = new Properties();
        //协议
        prop.setProperty("mail.transport.protocol", protocol);
        //服务器
        prop.setProperty("mail.smtp.host", host);
        //端口
        prop.setProperty("mail.smtp.port", port);
        //使用smtp身份验证
        prop.setProperty("mail.smtp.auth", "true");
        //企业邮箱需要使用SSL,SSL比之前25端口更加安全,且由于腾讯云等云服务器封禁了25端口,只能这么用
        //开启安全协议
        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.ssl.socketFactory", sf);
        
        Session session = Session.getDefaultInstance(prop, new MyAuthenricator(account, pass));
        session.setDebug(true);
        MimeMessage mimeMessage = new MimeMessage(session);
        try {
            //发件人
            mimeMessage.setFrom(new InternetAddress(account,"小夥"));//可以设置发件人的别名
            //收件人
            mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            //主题
            mimeMessage.setSubject(subject);
            //时间
            mimeMessage.setSentDate(new Date());
            //容器类,可以包含多个MimeBodyPart对象
            Multipart mp = new MimeMultipart();
         
            //MimeBodyPart可以包装文本,图片,附件
            MimeBodyPart body = new MimeBodyPart();
            //HTML正文
            body.setContent(content, "text/html; charset=UTF-8");
            mp.addBodyPart(body);
            
            //添加图片&附件
            if(fileStr != null){
             body = new MimeBodyPart();
             body.attachFile(fileStr);
             mp.addBodyPart(body);
            }
            //设置邮件内容
            mimeMessage.setContent(mp);
            //仅仅发送文本
            //mimeMessage.setText(content);
            mimeMessage.saveChanges();
            Transport.send(mimeMessage);
            return true;
        } catch (MessagingException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }
}

 3:效果

1MS8}(0JM)NDHW{W_Q)GN`W.png

4:具体情况,吞吐量等要使用线程池可以参考文章顶部参考2。

5:腾讯免费企业邮箱每天限量500条。

6:绑定微信后,需要将上述密码使用客户端专用密码

 

 

你可能感兴趣的文章

评论区

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您好,欢迎到访网站!
  查看权限

«   2018年6月   »
123
45678910
11121314151617
18192021222324
252627282930

最新留言