源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javamail 发送邮件的实例代码分享

  • 时间:2021-09-20 04:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javamail 发送邮件的实例代码分享
[b]注意:要先导入javamail的mail.jar包[/b]。 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可。 第一个类:MailSenderInfo.java
[u]复制代码[/u] 代码如下:
package com.util.mail; import java.util.Properties; /**  * 发送邮件需要使用的基本信息  */ public class MailSenderInfo {     //发送邮件的服务器的IP和端口     private String mailServerHost;     private String mailServerPort = "25";     //邮件发送者的地址     private String fromAddress;     //邮件接收者的地址     private String toAddress;     //登录邮件发送服务器的用户名和密码     private String userName;     private String password;     //是否需要身份验证     private boolean validate = false;     //邮件主题     private String subject;     //邮件的文本内容     private String content;     //邮件附件的文件名     private String[] attachFileNames;     /**      * 获得邮件会话属性      */     public Properties getProperties() {         Properties p = new Properties();         p.put("mail.smtp.host", this.mailServerHost);         p.put("mail.smtp.port", this.mailServerHost);         p.put("mail.smtp.auth", validate ? "true" : "false");         return p;     }     public String getMailServerHost() {         return mailServerHost;     }     public void setMailServerHost(String mailServerHost) {         this.mailServerHost = mailServerHost;     }     public String getMailServerPort() {         return mailServerPort;     }     public void setMailServerPort(String mailServerPort) {         this.mailServerPort = mailServerPort;     }     public boolean isValidate() {         return validate;     }     public void setValidate(boolean validate) {         this.validate = validate;     }     public String[] getAttachFileNames() {         return attachFileNames;     }     public void setAttachFileNames(String[] attachFileNames) {         this.attachFileNames = attachFileNames;     }     public String getFromAddress() {         return fromAddress;     }     public void setFromAddress(String fromAddress) {         this.fromAddress = fromAddress;     }     public String getPassword() {         return password;     }     public void setPassword(String password) {         this.password = password;     }     public String getToAddress() {         return toAddress;     }     public void setToAddress(String toAddress) {         this.toAddress = toAddress;     }     public String getUserName() {         return userName;     }     public void setUserName(String userName) {         this.userName = userName;     }     public String getSubject() {         return subject;     }     public void setSubject(String subject) {         this.subject = subject;     }     public String getContent() {         return content;     }     public void setContent(String content) {         this.content = content;     } }
第二个类:SimpleMailSender.java
[u]复制代码[/u] 代码如下:
package com.util.mail; import java.util.Date; import java.util.Properties; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; /**  * 简单邮件(不带附件)发送器  */ public class SimpleMailSender {     /**      * 以文本格式发送邮件      * @param mailInfo 待发送的邮件的信息      */     public boolean sendTextMail(MailSenderInfo mailInfo) {         //判断是否需要身份认证         MyAuthenticator authenticator = null;         Properties pro = mailInfo.getProperties();         if (mailInfo.isValidate()) {             //如果需要身份认证,则创建一个密码验证器             authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());         }         //根据邮件会话属性和密码验证器构造一个发送邮件的session         Session sendMailSession = Session.getDefaultInstance(pro, authenticator);         try {             //根据session创建一个邮件消息             Message mailMessage = new MimeMessage(sendMailSession);             //创建邮件发送者地址             Address from = new InternetAddress(mailInfo.getFromAddress());             //设置邮件消息的发送者             mailMessage.setFrom(from);             //创建邮件的接收者地址,并设置到邮件消息中             Address to = new InternetAddress(mailInfo.getToAddress());             // Message.RecipientType.TO属性表示接收者的类型为TO             mailMessage.setRecipient(Message.RecipientType.TO, to);             // 设置邮件消息的主题             mailMessage.setSubject(mailInfo.getSubject());             // 设置邮件消息发送的时间             mailMessage.setSentDate(new Date());             // 设置邮件消息的主要内容             String mailContent = mailInfo.getContent();              mailMessage.setText(mailContent);              // 发送邮件              Transport.send(mailMessage);              return true;         } catch (AddressException e) {             e.printStackTrace();         } catch (MessagingException e) {             e.printStackTrace();         }         return false;     }     /**      * 以Html格式发送邮件      * @param mailInfo 待发送的邮件的信息      */     public boolean sendHtmlMail(MailSenderInfo mailInfo) {         //判断是否需要身份认证         MyAuthenticator authenticator = null;         Properties pro = mailInfo.getProperties();         if (mailInfo.isValidate()) {             //如果需要身份认证,则创建一个密码验证器             authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());         }         //根据邮件会话属性和密码验证器构造一个发送邮件的session         Session sendMailSession = Session.getDefaultInstance(pro, authenticator);         try {             //根据session创建一个邮件消息             Message mailMessage = new MimeMessage(sendMailSession);             //创建邮件发送者地址             Address from = new InternetAddress(mailInfo.getFromAddress());             //设置邮件消息的发送者             mailMessage.setFrom(from);             //创建邮件的接收者地址,并设置到邮件消息中             Address to = new InternetAddress(mailInfo.getToAddress());             // Message.RecipientType.TO属性表示接收者的类型为TO             mailMessage.setRecipient(Message.RecipientType.TO, to);             // 设置邮件消息的主题             mailMessage.setSubject(mailInfo.getSubject());             // 设置邮件消息发送的时间             mailMessage.setSentDate(new Date());             // MimeMultipart类是一个容器类,包含MimeBodyPart类型的对象             Multipart mainPart = new MimeMultipart();             // 创建一个包含HTML内容的MimeBodyPart             BodyPart html = new MimeBodyPart();             //设置HTML内容             html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");             mainPart.addBodyPart(html);             //将mainPart对象设置为邮件内容              mailMessage.setContent(mainPart);              // 发送邮件              Transport.send(mailMessage);              return true;         } catch (AddressException e) {             e.printStackTrace();         } catch (MessagingException e) {             e.printStackTrace();         }         return false;     } }
第三个类:MyAuthenticator.java
[u]复制代码[/u] 代码如下:
package com.util.mail; import javax.mail.*; /**  * 身份认证  */ public class MyAuthenticator extends Authenticator {     String userName = null;     String password = null;     public MyAuthenticator(){     }     public MyAuthenticator(String username, String password) {         this.userName = username;         this.password = password;     }     @Override     protected PasswordAuthentication getPasswordAuthentication() {         return new PasswordAuthentication(userName, password);     } }
下面给出使用上面三个类的代码:
[u]复制代码[/u] 代码如下:
package com.util.mail; /**  * 发送邮件  */ public class Mail {     /**      * @param args      */     public static void main(String[] args) {         //这个类主要是设置邮件         MailSenderInfo mailInfo = new MailSenderInfo();         mailInfo.setMailServerHost("smtp.126.com");         mailInfo.setMailServerPort("25");         mailInfo.setValidate(true);         mailInfo.setUserName("test@126.com");         mailInfo.setPassword("test");         mailInfo.setFromAddress("test@126.com");         mailInfo.setToAddress("test@qq.com");         mailInfo.setSubject("设置邮箱标题 如http://www.guihua.org 中国桂花网");         mailInfo.setContent("设置邮箱内容 如http://www.guihua.org 中国桂花网 是中国最大桂花网站==");         //这个类主要来发送邮件         SimpleMailSender sms = new SimpleMailSender();         sms.sendTextMail(mailInfo);         sms.sendHtmlMail(mailInfo);     } }
最后,给出朋友们几个注意的地方: 1、使用此代码你可以完成你的javamail的邮件发送功能。三个类缺一不可。 2、这三个类我打包是用的com.util.mail包,如果不喜欢,你可以自己改,但三个类文件必须在同一个包中 3、不要使用你刚刚注册过的邮箱在程序中发邮件,如果你的163邮箱是刚注册不久,那你就不要使用“smtp.163.com”。因为你发不出去。刚注册的邮箱是不会给你这种权限的,也就是你不能通过验证。要使用你经常用的邮箱,而且时间比较长的。 4、另一个问题就是mailInfo.setMailServerHost("smtp.163.com");与mailInfo.setFromAddress("han2000lei@163.com");这两句话。即如果你使用163smtp服务器,那么发送邮件地址就必须用163的邮箱,如果不的话,是不会发送成功的。 5、关于javamail验证错误的问题,网上的解释有很多,但我看见的只有一个。就是我的第三个类。你只要复制全了代码,我想是不会有问题的。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部