• java 发送邮件


    以一个web项目为例,代码是可以移植的

    首先要导入mail.jar包,然后创建自己的类

    1:HTMLSender类

      1 package com.txq.mail;
      2 
      3 import java.util.Properties;
      4 
      5 import javax.mail.Message;
      6 import javax.mail.MessagingException;
      7 import javax.mail.NoSuchProviderException;
      8 import javax.mail.Session;
      9 import javax.mail.Transport;
     10 import javax.mail.internet.AddressException;
     11 import javax.mail.internet.InternetAddress;
     12 import javax.mail.internet.MimeMessage;
     13 import javax.mail.internet.MimeMultipart;
     14 import javax.mail.internet.MimeUtility;
     15 
     16 /**
     17  * 
     18  * @author Administrator
     19  *
     20  */
     21 public class HTMLSender {
     22     private MimeMessage message;
     23     private Properties props;
     24     private Session session;
     25     private String name = "";
     26     private String password = "";
     27     
     28     public HTMLSender(String host,String name,String password)
     29     {
     30         this.name = name;
     31         this.password = password;
     32         props = System.getProperties();
     33         
     34         props.put("mail.smtp.host", host);
     35         props.put("mail.smtp.auth","true");
     36         MyAuthenticator auth = new MyAuthenticator(name,password);
     37         session = Session.getDefaultInstance(props,auth);
     38         
     39         message = new MimeMessage(session);
     40         new MimeMultipart();
     41     }
     42     
     43     public void setFrom(String from)
     44     {
     45         try 
     46         {
     47             message.setFrom(new InternetAddress(from));
     48         } 
     49         catch (AddressException e)
     50         {
     51             e.printStackTrace();
     52         } 
     53         catch (MessagingException e)
     54         {
     55             e.printStackTrace();
     56         }
     57     }
     58     
     59     public void setTo(String to)
     60     {
     61         try
     62         {
     63             message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
     64         }
     65         catch(AddressException e)
     66         {
     67             e.printStackTrace();
     68         }
     69         catch(MessagingException e)
     70         {
     71             e.printStackTrace();
     72         }
     73     }
     74     
     75     public void setSubject(String subject)
     76     {
     77         try
     78         {
     79             message.setSubject(subject);
     80         }
     81         catch(Exception e)
     82         {
     83             e.printStackTrace();
     84         }
     85     }
     86     
     87     public void setContect(String content)
     88     {
     89         try
     90         {
     91             message.setContent(content,"text/html;charset=utf-8");
     92         }
     93         catch(Exception e)
     94         {
     95             e.printStackTrace();
     96         }
     97     }
     98     
     99     public boolean send()
    100     {
    101         try
    102         {
    103             Transport transport = session.getTransport("smtp");
    104             transport.connect((String)props.get("mail.smtp.host"),name,password);
    105             transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
    106             transport.close();
    107             return true;
    108         }
    109         catch(NoSuchProviderException e)
    110         {
    111             e.printStackTrace();
    112             return false;
    113         }
    114         catch(MessagingException e)
    115         {
    116             e.printStackTrace();
    117             return false;
    118         }
    119     }
    120 }

    2:MyAuthenticator类

     1 package com.txq.mail;
     2 
     3 import javax.mail.Authenticator;
     4 import javax.mail.PasswordAuthentication;
     5 
     6 
     7 public class MyAuthenticator extends Authenticator{
     8     String name;
     9     String password;
    10     public MyAuthenticator(String name,String pasword)
    11     {
    12         this.name = name;
    13         this.password = pasword;
    14         getPasswordAuthentication();
    15     }
    16     protected PasswordAuthentication getPasswordAuthentication()
    17     {
    18         return new PasswordAuthentication(name,password);
    19     }
    20 }

    3:MailAction类,前两个类只要完整的移至到你的项目中就可以(要把第一行对应的包名改一下),下边这个类,只要把带注释的内容修改为自己需要的就可以了;

     1 package com.txq.action;
     2 
     3 import java.io.PrintWriter;
     4 
     5 import com.opensymphony.xwork2.ActionSupport;
     6 import com.txq.mail.HTMLSender;
     7 
     8 public class MailAction extends ActionSupport {
     9     private String email;
    10     public String sendEmail(){
    11         //代理主机-新浪
    12         String host = "smtp.sina.cn";
    13         //帐号-新浪帐号
    14         String name = "qqsinabaidu";
    15         //密码-新浪密码
    16         String password = "baidu360";
    17         //创建发送邮件对象
    18         HTMLSender mail = new HTMLSender(host,name,password);
    19         //发邮帐号
    20         mail.setFrom("qqsinabaidu@sina.cn");
    21         //收邮帐号
    22         mail.setTo("youxiangzhanghe@qq.com");
    23         //邮件主题
    24         mail.setSubject("哈哈");
    25         //邮件内容
    26         mail.setContect("发送邮件的程序~");
    27         
    28         if(mail.send())
    29         {
    30             return SUCCESS;
    31         }
    32         else
    33         {
    34             return "error";
    35         }
    36     }
    37     public String getEmail() {
    38         return email;
    39     }
    40     public void setEmail(String email) {
    41         this.email = email;
    42     }
    43 }
    字节跳动内推

    找我内推: 字节跳动各种岗位
    作者: ZH奶酪(张贺)
    邮箱: cheesezh@qq.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Jocke的IOT之路--raspberrypi更换国内镜像
    利用PostMan 模拟上传/下载文件
    Java中的Lambda表达式
    设计模式之Jdk动态代理
    设计模式之代理模式
    Java内存模型及Java关键字 volatile的作用和使用说明
    JVM GC-----4、finalize()方法
    JVM GC-----3、垃圾对象的标记思路(二)
    JVM GC-----2、垃圾对象的标记思路(一)
    JVM GC-----1、垃圾回收算法
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/2953916.html
Copyright © 2020-2023  润新知