文档章节

Java发邮件简单实现

f
 fuhcr75
发布于 2016/10/24 09:44
字数 510
阅读 6
收藏 0

给出一个Java发送邮件的简单实现。

        下载  

Java代码

 收藏代码

  1. 1、  接口  
  2. public interface MailSendServDu {  
  3.   
  4.     public void sendEmail(String addressee, String subject, String content);  
  5. }  
  6.   
  7. 2、  实现  
  8. import javax.mail.*;  
  9. import javax.mail.internet.InternetAddress;  
  10. import javax.mail.internet.MimeMessage;  
  11. import java.util.Date;  
  12. import java.util.Map;  
  13. import java.util.Properties;  
  14.   
  15.   
  16. /** 
  17.  * 邮件发送接口 
  18.  * @param 
  19.  * @author Wu Jianguo 
  20.  * @version V1.0 
  21.  * @Description: 
  22.  * @modificationHistory=================重大变更调整记录 
  23.  * @modify by user: Wu Jianguo 
  24.  * @modify by reason:{方法名}:{原因} 
  25.  * @return 
  26.  * @throws 
  27.  */  
  28. public class MailSendServDuImpl implements MailSendServDu{  
  29.   
  30.     private Logger logger = Logger.getLogger(this.getClass());  
  31.   
  32.     // 初始化连接邮件服务器的会话信息  
  33.     private Properties properties = null;  
  34.     // 创建Session实例对象  
  35.     private Session session = null;  
  36.   
  37.     String fromAddress = null;  
  38.     String fromName = null;  
  39.     String charset = null;  
  40.   
  41.     public MailSendServDuImpl() {  
  42.         logger.info("发送邮件相关配置初始化.......");  
  43.   
  44.         Map<String,String> map = PropertiesUtils.getPropertiesValues("/properties/mail.properties");  
  45.         String turnon = map.get("mail.turnon");  
  46.         if (Boolean.parseBoolean(turnon)) {  
  47.             String protocol = map.get("mail.protocol");  
  48.             fromAddress = map.get("mail.fromAddress");  
  49.             fromName = map.get("mail.fromName");  
  50.             String host = map.get("mail.host");  
  51.             String port = map.get("mail.port");  
  52.             String auth = map.get("mail.auth");  
  53.             String username = map.get("mail.username");  
  54.             String password = map.get("mail.password");  
  55.             String debug = map.get("mail.debug");  
  56.             charset = map.get("mail.charset");  
  57.   
  58.             properties = new Properties();  
  59.             properties.setProperty("mail.transport.protocol", protocol);  
  60.             properties.setProperty("mail.smtp.host", host);  
  61.             properties.setProperty("mail.smtp.port", port);  
  62.             properties.setProperty("mail.smtp.auth", auth);  
  63.             properties.setProperty("mail.debug", debug);  
  64.   
  65.             if (Boolean.parseBoolean(auth)) {  
  66.                 session = Session.getDefaultInstance(properties, new HatomAuthenticator(username, password));  
  67.             } else {  
  68.                 session = Session.getDefaultInstance(properties, new HatomAuthenticator());  
  69.             }  
  70.         }  
  71.     }  
  72.    下载
  73.     @Override  
  74.     public void sendEmail(String addressee, String subject, String content) {  
  75.         logger.info("发送邮件");  
  76.   
  77.         MailSendServDuImpl ps = new MailSendServDuImpl();  
  78.   
  79.         try {  
  80.             if (null != properties) {  
  81.                 // 创建MimeMessage实例对象  
  82.                 MimeMessage message = new MimeMessage(session);  
  83.                 // 设置发件人  
  84.                 message.setFrom(new InternetAddress(fromAddress, fromName));  
  85.                 // 设置邮件主题  
  86.                 message.setSubject(subject);  
  87.                 // 设置收件人  
  88.                 message.setRecipient(Message.RecipientType.TO, new InternetAddress(addressee));  
  89.                 // 设置发送时间  
  90.                 message.setSentDate(new Date());  
  91.                 // 设置html内容为邮件正文,指定MIME类型为text/html类型,并指定字符编码  
  92.                 message.setContent(content, "text/html;charset=" + charset);  
  93.                 // 保存并生成最终的邮件内容  
  94.                 message.saveChanges();  
  95.                 // 发送邮件  
  96.                 Transport.send(message);  
  97.             }  
  98.         } catch (Exception e) {  
  99.             System.err.println(e.getMessage());  
  100.             logger.info("发送邮件异常");  
  101.         }  
  102.   
  103.     }  
  104.   
  105.     /** 
  106.      * 向邮件服务器提交认证信息 
  107.      */  
  108.     class HatomAuthenticator extends Authenticator {  
  109.         private String username;  
  110.         private String password;  
  111.   
  112.         public HatomAuthenticator() {  
  113.             super();  
  114.         }  
  115.   
  116.         public HatomAuthenticator(String username, String password) {  
  117.             super();  
  118.             this.username = username;  
  119.             this.password = password;  
  120.         }  
  121.   
  122.         @Override  
  123.         protected PasswordAuthentication getPasswordAuthentication() {  
  124.             return new PasswordAuthentication(username, password);  
  125.         }  
  126.     }  
  127. }  
  128.   
  129. 3、  配置文件  
  130. # 是否打开邮件发送  
  131. mail.turnon=true  
  132. # 邮件发送协议  
  133. mail.protocol=smtp  
  134. # 发信邮箱  
  135. mail.fromAddress=XXXX@163.com  
  136. # 发信人  
  137. mail.fromName=XX  
  138. # smtp端口号  
  139. mail.host=smtp.163.com  
  140. mail.port=25  
  141. # 是否需要验证  
  142. mail.auth=true  
  143. # smtp账号  
  144. mail.username=XXXX@163.com  
  145. # smtp密码  
  146. mail.password=  
  147. # 调试级别,0 关闭,1 一般,2较高  
  148. mail.debug=0  
  149. # 编码  
  150. mail.charset=UTF-8  

© 著作权归作者所有

f
粉丝 0
博文 2
码字总数 826
作品 0
济南
私信 提问
commons-email发邮件

记得曾经学习用javamail发邮件,学了2天,大概搞明白了利用javamail发邮件的方法和注意事项。 这周末在网上闲逛时,发现了另外一个发邮件的好东东。 commons-email-1.1.jar: 这是Apache组织下...

enzozhong
2013/02/14
0
0
Yammer从Scala转向Java

近日,由Yammer雇员Coda Hale发给Typesafe的Scala商业管理层的邮件通过YCombinator被泄漏出来并在GitHub上刊出。该邮件确认Yammer正在将其基础设施栈从Scala迁回至Java,原因在于Scala的复杂...

山海经
2013/08/25
0
0
Eclipse 官方正式支持 Java 8!

来自 Eclipse JDT 的项目经理 Daniel Megert 发了封邮件宣布 Eclipse 已经正式支持 Java 8,开发者可直接下载和使用 I20140318-0830 这个版本,对于 4.3 版本的用户可参考此文。 对 Java 8 的...

oschina
2014/03/20
20.7K
37
Jenkins 教程(一)实现自动化打包及邮件通知

个人不喜欢装腔作势一堆专业术语放上去,让大多数人看不懂来提升逼格(所谓的专家),所以我简单的介绍jenkins是干啥的。本文使用jenkins,就是让它把git仓库里的东西取出来,然后在jenkins容器...

FantJ
2018/05/26
0
0
Java 发送邮件实现(JavaMail 和 Spring 实现)

Java 实现邮件的发送,使用 JavaMail 和 Spring 实现 一、使用 JavaMail JavaMail 是 Java 处理电子邮件相关的编程接口,但是没有被加在标准的Java开发工具包中(Java Development Kit),所...

非摩尔根
01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里P7架构师:这些技术点没搞懂,我劝你不要跳槽!

阿里P7架构师架构师:这些技术点没搞懂,我劝你不要跳槽! 哪些技术点呢? 废话不多说,技术点全在下面这6张图里面了! 1.怎么看源码? 2.分布式 3.微服务 4.性能优化 5.工程化 粉丝福利:一...

别打我会飞
17分钟前
2
0
易错题

architect刘源源
22分钟前
1
0
使用Json4s 将带有Timestamp的对象转json时 变为所在时区

在有Timestamp属性的对象转json时 最后出来的时间会减小8小时,是因为变成了0时区,需要将隐式转换中添加设置本地时区 import org.json4s.{DefaultFormats, Formats}import org.json4s.jac...

可达鸭Go
23分钟前
1
0
工作六年java程序员的工作感悟,带你走出迷茫

前言 很多年前,刚刚从大学毕业的时候,很多公司来校招。其中最烂俗的一个面试问题是:“你希望你之后三到五年的发展是什么?”。我当时的标准回答是(原话):“成为在某一方面能够独当一面...

java知识分子
28分钟前
1
0
jenkins邮箱发送失败以及解决方案

jenkins邮箱设置报错以及解决方案 Jenkins邮箱设置 我用了 Email Extended Plugin这个插件,这个插件会有更加丰富的邮件内容,建议添加。 1.安装 Email Extended Plugin 2.系统管理-系统设置...

shzwork
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部