zoukankan      html  css  js  c++  java
  • 使用Java发邮件

     1 import java.io.UnsupportedEncodingException;
     2 import java.security.GeneralSecurityException;
     3 import java.util.Properties;
     4 import javax.mail.BodyPart;
     5 import javax.mail.Message;
     6 import javax.mail.Multipart;
     7 import javax.mail.Session;
     8 import javax.mail.Transport;
     9 import javax.mail.internet.InternetAddress;
    10 import javax.mail.internet.MimeBodyPart;
    11 import javax.mail.internet.MimeMessage;
    12 import javax.mail.internet.MimeMultipart;
    13 import com.sun.mail.util.MailSSLSocketFactory;
    14 
    15 public class mymail {
    16     
    17     private String host = "smtp.qq.com"; // smtp服务器
    18     private String from = "textsim@foxmail.com"; // 发件人地址
    19     private String to = "qce.hui@qq.com"; // 收件人地址
    20     private String pwd = "***********"; // 密码(使用授权码)
    21     private String subject = "文本相似度检测系统--注册验证码"; // 邮件标题
    22     
    23     public void send() {
    24         Properties props = new Properties();
    25         
    26         // 设置发送邮件的邮件服务器的属性(这里使用腾讯的smtp服务器)
    27         props.put("mail.smtp.host", host);
    28         // 需要经过授权,也就是有用户名和密码的校验,这样才能通过验证(一定要有这一条)
    29         props.put("mail.smtp.auth", "true");
    30         
    31         // 开启SSL加密,否则会失败
    32         try {
    33             MailSSLSocketFactory sf;
    34             sf = new MailSSLSocketFactory();
    35             sf.setTrustAllHosts(true);
    36             props.put("mail.smtp.ssl.enable", "true");
    37             props.put("mail.smtp.ssl.socketFactory", sf);
    38         } catch (GeneralSecurityException e1) {
    39             System.out.println("QQ邮箱SSL加密开启失败!");
    40         }
    41         
    42         // 用刚刚设置好的props对象构建一个session
    43         Session session = Session.getDefaultInstance(props);
    44         
    45         // 有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使
    46         // 用(你可以在控制台(console)上看到发送邮件的过程)
    47         session.setDebug(true);
    48         
    49         // 用session为参数定义消息对象
    50         MimeMessage message = new MimeMessage(session);
    51         try { 
    52             // 设置自定义发件人昵称
    53             String nick = "";
    54             try {
    55                 nick = javax.mail.internet.MimeUtility.encodeText("TextSim");
    56             } catch (UnsupportedEncodingException e) {
    57                 System.out.println("QQ邮箱设置自定义发件人昵称错误!");
    58             }
    59             // 加载发件人地址
    60             message.setFrom(new InternetAddress(nick + " <"+from+">"));
    61             // 加载收件人地址
    62             message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    63             // 加载标题
    64             message.setSubject(subject);
    65             
    66             // 向multipart对象中添加邮件的内容
    67             Multipart multipart = new MimeMultipart();
    68             
    69             // 设置邮件的文本内容
    70             BodyPart contentPart = new MimeBodyPart();
    71             contentPart.setText("测试一下,看看能不能发送成功,您的验证码是:667542");
    72             multipart.addBodyPart(contentPart);
    73             
    74             // 将multipart对象放到message中
    75             message.setContent(multipart);
    76             // 保存邮件
    77             message.saveChanges();
    78             // 发送邮件
    79             Transport transport = session.getTransport("smtp");
    80             // 连接服务器的邮箱
    81             transport.connect(host, from, pwd);
    82             // 把邮件发送出去
    83             transport.sendMessage(message, message.getAllRecipients());
    84             transport.close();
    85             System.out.println("发送成功");
    86         } catch (Exception e) {
    87             System.out.println("发送失败");
    88             e.printStackTrace();
    89         }
    90     }
    91     
    92     public static void main(String[] args) {
    93         mymail cn = new mymail();
    94         cn.send();
    95     }
    96 }

    这里是使用QQ邮箱发送的,代码已测试过了,可以发送。需要的包都在https://pan.baidu.com/s/1eT0yVN8。

  • 相关阅读:
    Linux基本命令-chmod
    Linux操作系统启动流程
    博客园背景美化
    Windows安装python3.x后,pip list警告!DEPRECATION: The default format will switch to columns in the future.
    Python2.7更新pip:UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordinal not in range(128)
    .Net程序员学用Oracle系列(23):视图理论、物化视图
    .Net程序员学用Oracle系列(22):分析函数(OVER)
    .Net程序员学用Oracle系列(21):分组查询(GROUP BY)
    .Net程序员学用Oracle系列(20):层次查询(CONNECT BY)
    .Net程序员学用Oracle系列(19):导出、导入(备份、还原)
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8445589.html
Copyright © 2011-2022 走看看