- 浏览: 64225 次
文章分类
- 全部博客 (35)
- java (35)
- c# winform 使用flowlayoutpanel控件做为导航菜单按钮的容器 (1)
- 数据库比较工具DBCompareTool 0.3.0 preview 发布 (1)
- xmemcached发布1.3.4 (1)
- web.xml中一些标签的解释 (1)
- Select (1)
- lua 网址大全 (1)
- date 显示至1970年来的秒数 (1)
- struts2一个表单提交多个action (1)
- 监听短信并判断是否未读 (1)
- 日本软件公司 管理者 改善 流程 (1)
- 一点点感悟 (1)
- 判断一个字符是双字节还是单字节 (1)
- “未与信任 SQL SERVER 连接相关联”错误解决方法 (1)
- 如何美化自己的BLOG (1)
- 金山词霸2005采用新的防止盗版的方法及简单解决方法 (1)
- 图形图像必须知道的事(一):几何变换 (1)
- 男人帮之程序员坚持语录 (1)
- android程序复制数据库 (1)
- javascript父、子页面交互小结 (1)
- java使用代理发送邮件 (1)
- eclipse修改project名称出问题,彻底删除项目 (1)
- Android开发之Intent、广播和接收 (1)
- 在一个方向上延伸,我的春天可能快来到了。 (1)
- chm文件无法打开问题 (1)
- Oracle数据库与MySQL数据库的几点区别 (1)
- [转载]SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 (1)
- 高质量Java编码指南 (1)
- ruby 不完全安装修复 [openssl or zlib not found] (1)
- 切换CVS账户 (1)
最新评论
-
jurafish:
楼主,这个比较工具在哪儿下载呀?你说给的链接全都失效了:(
数据库比较工具DBCompareTool 0.3.0 preview 发布 -
wolf_awp:
iteye越来越不行了啊!
一点点感悟 -
zhuchao_ko:
............................... ...
struts2一个表单提交多个action
[size=18px;]最近用java写个发邮件的东东,然后打成jar包,jar包可以放在任何地方邮件正常发送[/size]
[size=18px;]要求 :[/size]
[size=18px;]1、网络正常的情况下,可以发送;[/size]
[size=18px;]2、网络不正常的时候,需要使用内网连接到外网,使用代理发送邮件。[/size]
[size=18px;]部分代码拿出来分享一下:[/size]
[size=16px;]package com.zyuc.mail;[/size]
[size=16px;]import java.io.File;<br>
import java.util.HashMap;<br>
import java.util.Map;<br>
import java.util.Properties;<br>
import javax.activation.*;<br>
import javax.mail.*;<br>
import javax.mail.internet.*;<br>
import org.apache.log4j.Logger;<br>
import com.zyuc.domParse.DomParseXml;<br>
import com.zyuc.util.UtilTools;[/size]
[size=16px;]/**<br>
* 邮件发送<br>
* @author wangxw<br>
* 2011-10-26<br>
*/<br>
public class JmailConfig {<br><br>
private static Logger logger = Logger.getLogger(JmailConfig.class);<br>
private static Map map = new HashMap();<br>
private static JmailFileRead jmailFileRead = new JmailFileRead();<br>
public String Email_Text = new String();<br>
private static JmailConfig mail = new JmailConfig();<br><br>
/**<br>
*构造函数 初始化参数信息<br>
*/<br>
public JmailConfig(){<br>
//获得配置文件<br>
String configPath = UtilTools.getPath()+File.separator+"JmailConfig.xml";<br>
File file = new File(configPath);<br>
//加载配置文件信息<br>
if(file.exists()){<br>
map = new DomParseXml().parseXml(configPath);<br>
Email_Text = jmailFileRead.fileRead(map.get("Email_Text").toString()); <br>
}else{<br>
logger.error("邮件配置文件未找到");<br>
}<br>
}<br><br>
/**<br>
* 邮件附件的添加<br>
* @param multipart<br>
* @param filePath<br>
* @param fileName<br>
* @param k<br>
* @return boolean<br>
*/<br>
private boolean addMultipart(Multipart multipart, String filePath,<br>
String fileName, int k) {<br>
boolean flag = true;<br>
try {<br>
MimeBodyPart messageBodyPart = new MimeBodyPart();<br>
if (k == 0) {<br>
messageBodyPart.setText(Email_Text);<br>
multipart.addBodyPart(messageBodyPart);<br>
}<br>
messageBodyPart = new MimeBodyPart();<br>
DataSource source = new FileDataSource(filePath);<br>
messageBodyPart.setDataHandler(new DataHandler(source));<br>
messageBodyPart.setFileName(fileName);<br>
multipart.addBodyPart(messageBodyPart);<br>
} catch (Exception e) {<br>
flag = false;<br>
logger.error("邮件附件的添加失败" + e.getMessage());<br>
e.printStackTrace();<br>
}<br>
return flag;<br>
}<br><br>
/**<br>
* 发送邮件信息配置<br>
* @return boolean<br>
*/<br>
public boolean sendMail(){<br>
boolean sendFlag = true;<br>
final String username = map.get("Email_User").toString();<br>
final String password = map.get("Email_Pswd").toString();<br><br>
Session session;<br>
//获得是否使用代理发送的标识<br>
String Email_Proxy_Flag = map.get("Email_Proxy_Flag").toString();<br>
if("1".equalsIgnoreCase(Email_Proxy_Flag)){<br>
//若Email_Proxy_Flag==1则使用代理发送<br>
try {<br>
Properties props = System.getProperties();<br>
props.put("mail.smtp.auth", "true");<br>
props.setProperty("proxySet", "true");<br>
props.setProperty("mail.stmp.host", map.get("Email_Host").toString());<br>
props.setProperty("http.proxyhost",map.get("Email_Proxy_Host").toString());<br>
props.setProperty("http.proxyport",map.get("Email_Proxy_Port").toString());<br><br>
session = Session.getDefaultInstance(props,<br>
new Authenticator() {<br>
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {<br>
return new javax.mail.PasswordAuthentication(<br>
username, password);<br>
}<br>
});<br>
MimeMessage message = new MimeMessage(session);<br>
message.setFrom(new InternetAddress(map.get("Email_From").toString()));<br><br>
//多个接受者<br>
String[] to = map.get("Email_To").toString().split(";");<br>
if (to != null) {<br>
InternetAddress[] toAddress = new InternetAddress[to.length];<br>
for (int i = 0; i < to.length; i++) {<br>
toAddress[i] = new InternetAddress(to[i]);<br>
}<br>
message.addRecipients(Message.RecipientType.TO, toAddress);<br>
}<br><br>
//多个抄送者<br>
String[] cc = map.get("Email_Cc").toString().split(";");<br>
if (null != cc) {<br>
InternetAddress[] ccAddress = new InternetAddress[cc.length];<br>
for (int j = 0; j < cc.length; j++) {<br>
ccAddress[j] = new InternetAddress(cc[j]);<br>
}<br>
message.addRecipients(Message.RecipientType.CC, ccAddress);<br>
}<br>
message.setSubject(map.get("Email_Subject").toString());<br><br><br>
//附件功能<br>
Multipart multipart = new MimeMultipart();<br>
String[] filepath = map.get("FilePath").toString().split(";");<br>
String[] attachName = map.get("AttachName").toString().split(";");<br>
if (null != filepath) {<br>
for (int k = 0; k < filepath.length; k++) {<br>
addMultipart(multipart, filepath[k], attachName[k], k);<br>
}<br>
} else if (null == filepath) {<br>
message.setText(Email_Text);<br>
}<br>
message.setContent(multipart);<br><br>
Transport transport = session.getTransport("smtp");<br>
transport.connect(map.get("Email_Host").toString(), username, password);<br>
transport.sendMessage(message, message.getAllRecipients());<br>
transport.close();<br>
} catch (Exception e) {<br>
sendFlag = false;<br>
logger.error("使用代理发送邮件出错" + e.getMessage());<br>
e.printStackTrace();<br>
}<br>
}else{<br>
//若Email_Proxy_Flag!=1则不使用代理发送<br>
try {<br>
Properties props = System.getProperties();<br>
props.put("mail.smtp.auth", "true");<br>
props.setProperty("mail.stmp.host", map.get("Email_Host").toString());<br><br>
session = Session.getDefaultInstance(props,<br>
new Authenticator() {<br>
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {<br>
return new javax.mail.PasswordAuthentication(<br>
username, password);<br>
}<br>
});<br>
MimeMessage message = new MimeMessage(session);<br>
message.setFrom(new InternetAddress(map.get("Email_From").toString()));<br><br>
//多个接收者<br>
String[] to = map.get("Email_To").toString().split(";");<br>
if (to != null) {<br>
InternetAddress[] toAddress = new InternetAddress[to.length];<br>
for (int i = 0; i < to.length; i++) {<br>
toAddress[i] = new InternetAddress(to[i]);<br>
}<br>
message.addRecipients(Message.RecipientType.TO, toAddress);<br>
}<br><br>
//多个抄送者<br>
String[] cc = map.get("Email_Cc").toString().split(";");<br>
if (null != cc && cc.length > 0) {<br>
InternetAddress[] ccAddress = new InternetAddress[cc.length];<br>
for (int j = 0; j < cc.length; j++) {<br>
ccAddress[j] = new InternetAddress(cc[j]);<br>
}<br>
message.addRecipients(Message.RecipientType.CC, ccAddress);<br>
}<br>
message.setSubject(map.get("Email_Subject").toString());<br><br>
//附件功能<br>
Multipart multipart = new MimeMultipart();<br>
String[] filepath = map.get("FilePath").toString().split(";");<br>
String[] attachName = map.get("AttachName").toString().split(";");<br>
if (null != filepath && filepath.length > 0 && attachName.length > 0 && filepath.length == attachName.length) {<br>
for (int k = 0; k < filepath.length; k++) {<br>
addMultipart(multipart, filepath[k], attachName[k], k);<br>
}<br>
} else if (null == filepath) {<br>
message.setText(Email_Text);<br>
}<br>
message.setContent(multipart);<br><br>
Transport transport = session.getTransport("smtp");<br>
transport.connect(map.get("Email_Host").toString(), username, password);<br>
transport.sendMessage(message, message.getAllRecipients());<br>
transport.close();<br>
} catch (Exception e) {<br>
sendFlag = false;<br>
logger.error("发送邮件出错" + e.getMessage());<br>
e.printStackTrace();<br>
}<br>
}<br>
return sendFlag;<br>
}<br><br>
public String returnMessage(){<br>
boolean flag = mail.sendMail();<br>
StringBuffer sb = new StringBuffer();<br>
if(flag){<br>
sb.append("\n").append("邮件发送已成功").append("\t").append("\n");<br>
sb.append("邮件发送者:" + map.get("Email_From").toString()).append("\t").append("\n");<br>
sb.append("邮件发送至:" + map.get("Email_To").toString()).append("\t").append("\n");<br>
sb.append("邮件抄送给:" + map.get("Email_Cc").toString()).append("\t").append("\n");<br>
sb.append("邮件正文为:" + map.get("Email_Text").toString()).append("\t").append("\n");<br>
sb.append("发送时间是:" + UtilTools.getDate()).append("\t").append("\n");<br>
}else{<br>
sb.append("\n").append("邮件发送失败").append("\t").append("\n");<br>
sb.append("发送时间是:" + UtilTools.getDate()).append("\t").append("\n");<br>
}<br>
return sb.toString();<br>
}<br><br>
public static void main(String args[]) {<br>
logger.info("===============开始发送=================");<br>
logger.info(mail.returnMessage());<br>
logger.info("===============发送结束=================");<br>
}<br>
}<br>[/size]
发表评论
-
切换CVS账户
2012-02-07 17:19 1091<div style="text-i ... -
ruby 不完全安装修复 [openssl or zlib not found]
2012-02-07 14:58 924发现 ruby源码包的ext文件夹下有很多 扩展包, ... -
高质量Java编码指南
2012-02-04 14:33 1075核心思想依然是《Effective Java》里面说: ... -
[转载]SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
2012-02-03 12:09 788Insert是T-sql中常用语句,Insert ... -
Oracle数据库与MySQL数据库的几点区别
2012-02-03 08:34 1223<span style="" ... -
chm文件无法打开问题
2012-02-02 13:59 902<div class="quot ... -
在一个方向上延伸,我的春天可能快来到了。
2012-01-31 13:38 760工作了这么久,我好想才找到了自己感兴趣的方向。不知道算 ... -
Android开发之Intent、广播和接收
2012-01-31 13:28 7614<h1>Android开发之Intent、 ... -
eclipse修改project名称出问题,彻底删除项目
2012-01-11 14:28 8440想给刚建好的project改名字,refac ... -
javascript父、子页面交互小结
2011-12-28 13:43 965<span style="font-f ... -
android程序复制数据库
2011-12-21 13:23 1057一般项目中我们把db文件放到assert或者r ... -
男人帮之程序员坚持语录
2011-12-20 16:29 771[size=18px;]1.”我们处在一个瞬息万变的世 ... -
图形图像必须知道的事(一):几何变换
2011-12-20 14:03 1096[size=9pt;]作者:[/size]<s ... -
金山词霸2005采用新的防止盗版的方法及简单解决方法
2011-12-19 09:44 852金山词霸2005新鲜出炉,不少人都已经从网上下载并且安 ... -
如何美化自己的BLOG
2011-12-15 17:24 699下面的三个美化BLOG的方法是用的最多的,是最常见的. ... -
“未与信任 SQL SERVER 连接相关联”错误解决方法
2011-12-14 17:19 790<font s ... -
判断一个字符是双字节还是单字节
2011-12-14 10:24 4766对于字符串的处理,经常会遇到需要判断字符是双字节还是单 ... -
一点点感悟
2011-12-13 11:09 825<p class="MsoNo ... -
日本软件公司 管理者 改善 流程
2011-12-13 09:49 744<p class="MsoNorma ... -
监听短信并判断是否未读
2011-12-08 19:04 1054final String SMS_RECEIVED ...
相关推荐
Java socket 代理邮件发送程序,测试无问题,才敢上传!
文档详细描述,linux不通外网的情况下,通过在另一台通外网的服务器搭建socks5代理服务,不通外网的服务器通过socks5代理,成功向外网发送邮件的功能。
利用Java并配置Foxmail发送邮箱(携带附件),亲测可用
用Java开发的邮件代理服务器,实现了注册、收件、发件等功能
java邮件发送例子 apache email demo
ews-java-api 是用来访问 Exchange Web 服务的 Java 客户端库,API 支持 Office 365 Exchange Online。 ============================================ 其实资源是这位朋友的, 我这边只是把jar包收集齐全了,可以...
不用再为发邮件一堆代码而痛苦了 介绍一下具体用法: 1 调用Email配置初始化方法: SendEmailUtil initEmailPorxy "smtp" "smtp 163 com" "yannannan2012@163 com" "password&...
可以用163邮箱代理发送邮件的实例,包含所需的jar,很实用
Java版Mail发邮件Demo。 支持多收件人,多附件,邮件代理服务器。
本程序是利用javaMail包编写的邮件代理程序,已经用exe4j打包成了二进制可执行文件,安装Java虚拟机后双击图标可直接运行,压缩包内附有源码,已经过测试,可放心使用。欢迎随时交流。 QQ:444080606 Email:运行...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...