首页 > 编程 > Java > 正文

Java发送邮件javax.mail的实现方法

2019-11-26 14:39:13
字体:
来源:转载
供稿:网友

直接上源码:
1. 邮件的基本信息(方便就直接设置为静态了)
下面最好是做为一个javabean

package com.lgf.Email;  import java.util.Date;  public class EmailMessage  {   /**    * 邮件的信息,可以自己进行设置。    * 为了方便直接全部设置为静态    */    // 收件人邮箱   public static String TO = "xxx@xxx.com";   // 发件人邮箱   public static String FROM = "xxx@xxx.com";    public static String FROM_NAME = "xxx";  //  抄送人     public static String CC="xxx@nxxx.com";   //  暗送人   public static String BCC="xxx@nxxx.com";     // 邮件的类型   public static String Email_Content = "text/plain"; // 邮件标题   public static String Email_Subject = "Test Email With JavaMail";   // 邮件头   public static String Email_Header = "This Is Email Header";   // 内容   public static String Email_Body = "<a href=/"http://www.baidu.com/">This Is Email Body</a>";  // 服务器 比如QQ的可以设置为smtp.qq.com   public static String Email_Host = "smtp.xxx.com";      // 发送时间   public static Date sendDate = new Date();  // 是否需要验证用户名和密码   public static boolean validate = true;    }
 

2. 服务器验证(就是一般登入时候的用户名和密码)

package com.lgf.Email;  import javax.mail.Authenticator; import javax.mail.PasswordAuthentication;  /**  * 用户名和密码的验证  * @author lgf  *  */ public class MailAuthenticator extends Authenticator{   private String username="xxxxx";     private String password="xxxxx";        public MailAuthenticator() {     super();   }      /**    * 设置验证的用户名和密码    */   public MailAuthenticator(String userName , String password) {     super();     this.username = userName;     this.password = password;   }   protected PasswordAuthentication getPasswordAuthentication()   {       return new PasswordAuthentication(this.username,this.password);     }   } 

 3. 发送邮件前设置信息和步骤

package com.lgf.Email;  import java.util.Properties;  import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; 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 com.lgf.SendEmail.MailAuthenticator;  public class SendEmail  {      /**    * 发送普通邮件    * @throws Exception    */     public void doSendNormalMail()    {   //    获取系统环境      Properties prop = new Properties();      Authenticator auth = null; //   判断发送邮件是否需要验证     if (EmailMessage.validate)      { //      邮件服务器认证  用户名和密码       auth = new MailAuthenticator();      } //   添加必要的信息     prop.put("mail.smtp.host", EmailMessage.Email_Host);       prop.put("mail.smtp.auth", "true");        //    设置对话和邮件服务器进行通讯     Session session = Session.getDefaultInstance(prop, auth);   //   在控制台显示Debug信息     session.setDebug(true); //   设置邮件对象     Message message = new MimeMessage(session);       try      {   //      设置邮件主题        message.setSubject(EmailMessage.Email_Subject);   //      设置邮件标题         message.setHeader("Header", EmailMessage.Email_Header);  //      设置发送时间         message.setSentDate(EmailMessage.sendDate);        //      设置发信人地址 和 名字       Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);   //     把发件人信息添加到信息中       message.setFrom(address);          //     设置发件人地址       Address toAddress = new InternetAddress(EmailMessage.TO);  //      设置接收人地址       message.setRecipient(Message.RecipientType.TO, toAddress);         //     设置多个收件人地址   //     message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));    //      设置邮件格式       message.setContent("Content", EmailMessage.Email_Content);  //      设置邮件内容  必须在设置文件格式后面       message.setText(EmailMessage.Email_Body);         //     保存上面添加的信息       message.saveChanges();   //      发送邮件        System.out.println("sendNormalEmail() 开始发送邮件……");         Transport.send(message);         System.out.println("发送成功!");       } catch (Exception e)     {           System.out.println("出错");           e.printStackTrace();       }     }        /**    * 发送HTML格式的邮件    */   public void doSendHtmlMail()    {   //    获取系统环境      Properties prop = new Properties();       Authenticator auth = null;     if (EmailMessage.validate)     { //      邮件服务器认证  用户名和密码       auth = new MailAuthenticator();     } //   添加必要的信息     prop.put("mail.smtp.host", EmailMessage.Email_Host);       prop.put("mail.smtp.auth", "true");        //    设置对话和邮件服务器进行通讯     Session session = Session.getDefaultInstance(prop, auth);        //   设置邮件对象     Message message = new MimeMessage(session);       try      {   //      设置邮件主题        message.setSubject(EmailMessage.Email_Subject);   //      设置邮件标题         message.setHeader("Header", EmailMessage.Email_Header);  //      设置发送时间         message.setSentDate(EmailMessage.sendDate);        //      设置发信人地址 和 名字       Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);   //     把发件人信息添加到信息中       message.setFrom(address);          //     设置发件人地址       Address toAddress = new InternetAddress(EmailMessage.TO);  //      设置接收人地址       message.setRecipient(Message.RecipientType.TO, toAddress);         //     设置多个收件人地址   //     message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));    //     设置发送信息的内容  下面为发送hmml //     设置邮件格式       EmailMessage.Email_Content = "text/html; charset=utf-8";       message.setContent(EmailMessage.Email_Body, EmailMessage.Email_Content);   //     保存上面添加的信息       message.saveChanges();   //      发送邮件        System.out.println("doSendHtmlMail() 开始发送邮件……");         Transport.send(message);         System.out.println("发送成功!");       } catch (Exception e)     {           System.out.println("出错");           e.printStackTrace();       }     }     /**    * 发送带有附件格式的邮件    */   public void doSendAttachmentMail()    {   //    获取系统环境      Properties prop = new Properties();       Authenticator auth = null;     if (EmailMessage.validate)     { //      邮件服务器认证  用户名和密码       auth = new MailAuthenticator();     } //   添加必要的信息     prop.put("mail.smtp.host", EmailMessage.Email_Host);       prop.put("mail.smtp.auth", "true");        //    设置对话和邮件服务器进行通讯     Session session = Session.getDefaultInstance(prop, auth);        //   设置邮件对象     Message message = new MimeMessage(session);       try      {   //      设置邮件主题        message.setSubject(EmailMessage.Email_Subject);   //      设置邮件标题         message.setHeader("Header", EmailMessage.Email_Header);  //      设置发送时间         message.setSentDate(EmailMessage.sendDate);        //      设置发信人地址 和 名字       Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);   //     把发件人信息添加到信息中       message.setFrom(address);          //     设置发件人地址       Address toAddress = new InternetAddress(EmailMessage.TO);  //      设置接收人地址       message.setRecipient(Message.RecipientType.TO, toAddress);         //     设置多个收件人地址   //     message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));                //     设置发送信息的内容  下面为发送附件       message.setContent(EmailMessage.Email_Body, EmailMessage.Email_Content);               BodyPart messageBodyPart = new MimeBodyPart();         messageBodyPart.setText("bodypart");                Multipart multipart = new MimeMultipart();         multipart.addBodyPart(messageBodyPart);                messageBodyPart = new MimeBodyPart();          //     设置上传的资源       DataSource source = new FileDataSource("E://3.doc");  //     添加到       messageBodyPart.setDataHandler(new DataHandler(source));   //     设置文件名称,记得后缀名       messageBodyPart.setFileName("test.doc");         multipart.addBodyPart(messageBodyPart);               message.setContent(multipart);          //     保存上面添加的信息       message.saveChanges();   //      发送邮件        System.out.println("doSendAttachmentMail() 开始发送邮件……");         Transport.send(message);         System.out.println("发送成功!");       } catch (Exception e)     {           System.out.println("出错");           e.printStackTrace();       }     }     /**    * @param args    */   public static void main(String[] args)   { //   new SendEmail().doSendNormalMail(); //   new SendEmail().doSendHtmlMail();     new SendEmail().doSendAttachmentMail();   }  } 

以上就是Java发送邮件javax.mail的详细代码,希望对大家实现java邮件发送有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表