- 浏览: 65766 次
文章分类
- 全部博客 (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 1138<div style="text-i ... -
ruby 不完全安装修复 [openssl or zlib not found]
2012-02-07 14:58 968发现 ruby源码包的ext文件夹下有很多 扩展包, ... -
高质量Java编码指南
2012-02-04 14:33 1110核心思想依然是《Effective Java》里面说: ... -
[转载]SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
2012-02-03 12:09 835Insert是T-sql中常用语句,Insert ... -
Oracle数据库与MySQL数据库的几点区别
2012-02-03 08:34 1267<span style="" ... -
chm文件无法打开问题
2012-02-02 13:59 934<div class="quot ... -
在一个方向上延伸,我的春天可能快来到了。
2012-01-31 13:38 820工作了这么久,我好想才找到了自己感兴趣的方向。不知道算 ... -
Android开发之Intent、广播和接收
2012-01-31 13:28 7655<h1>Android开发之Intent、 ... -
eclipse修改project名称出问题,彻底删除项目
2012-01-11 14:28 8488想给刚建好的project改名字,refac ... -
javascript父、子页面交互小结
2011-12-28 13:43 995<span style="font-f ... -
android程序复制数据库
2011-12-21 13:23 1097一般项目中我们把db文件放到assert或者r ... -
男人帮之程序员坚持语录
2011-12-20 16:29 818[size=18px;]1.”我们处在一个瞬息万变的世 ... -
图形图像必须知道的事(一):几何变换
2011-12-20 14:03 1141[size=9pt;]作者:[/size]<s ... -
金山词霸2005采用新的防止盗版的方法及简单解决方法
2011-12-19 09:44 898金山词霸2005新鲜出炉,不少人都已经从网上下载并且安 ... -
如何美化自己的BLOG
2011-12-15 17:24 729下面的三个美化BLOG的方法是用的最多的,是最常见的. ... -
“未与信任 SQL SERVER 连接相关联”错误解决方法
2011-12-14 17:19 835<font s ... -
判断一个字符是双字节还是单字节
2011-12-14 10:24 4823对于字符串的处理,经常会遇到需要判断字符是双字节还是单 ... -
一点点感悟
2011-12-13 11:09 860<p class="MsoNo ... -
日本软件公司 管理者 改善 流程
2011-12-13 09:49 783<p class="MsoNorma ... -
监听短信并判断是否未读
2011-12-08 19:04 1091final String SMS_RECEIVED ...
相关推荐
Java socket 代理邮件发送程序,测试无问题,才敢上传!
3. 发件:当用户通过代理服务器发送邮件时,服务器会使用SMTP向目标邮件服务器发送邮件。JavaMail API同样在发送邮件时起到关键作用,它允许设置邮件头信息(如发件人、收件人、主题等)、添加附件,以及选择适当的...
本教程将深入探讨如何使用Java来配置Foxmail发送带有附件的邮件。首先,我们需要理解Java Mail API,它是Java中用于处理邮件的核心库。 Java Mail API提供了处理邮件的所有必要工具,包括创建、读取、发送和管理...
在这个例子中,我们将深入探讨如何使用Apache Commons Email库在Java中实现邮件发送。 首先,你需要在项目中引入Apache Commons Email的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml ...
文档详细描述,linux不通外网的情况下,通过在另一台通外网的服务器搭建socks5代理服务,不通外网的服务器通过socks5代理,成功向外网发送邮件的功能。
Java邮件代理是一个用于处理电子邮件的程序,它使用Java编程语言实现。邮件代理可以在发送或接收邮件的过程中执行各种操作,如过滤、转发、存储或者提供访问邮件的接口。在这个"Java邮件代理 源码"中,我们可以深入...
标题中的“spring mail通过代理发送邮件”指的是使用Spring框架中的JavaMailSender接口和相关的支持类,通过设置代理服务器来发送电子邮件。在某些网络环境中,直接访问SMTP服务器可能会受到限制,这时就需要通过...
这个实例是关于如何使用163邮箱作为代理来发送邮件的具体代码示例,包含了所有必要的依赖库。 首先,我们需要了解JavaMail API。JavaMail API是Java平台上的一个标准API,它提供了一组接口和类,用于处理邮件服务器...
ews-java-api 是用来访问 Exchange Web 服务的 Java 客户端库,API 支持 Office 365 Exchange Online。 ============================================ 其实资源是这位朋友的, 我这边只是把jar包收集齐全了,可以...
不用再为发邮件一堆代码而痛苦了 介绍一下具体用法: 1 调用Email配置初始化方法: SendEmailUtil initEmailPorxy "smtp" "smtp 163 com" "yannannan2012@163 com" "password&...
Java Mail 提供了设置代理的能力,你可以在代码中指定代理服务器的地址和端口,以便顺利发送邮件。 下面是一个简化的Java Mail发送邮件的步骤,展示了一些关键API的使用: 1. 引入Java Mail依赖:首先确保项目中...
在Java中,我们通常使用`javax.mail`和`javax.mail.internet`这两个包来实现SMTP邮件的发送。首先,我们需要配置SMTP服务器的相关属性,如主机名、端口号、用户名和密码。这些信息可以通过`Properties`对象来设置。...
在Java中,我们需要遵循SMTP命令的规范来与服务器交互,例如,发送"HELO"命令来初始化会话,"MAIL FROM:"指定发件人,"RCPT TO:"指定收件人,最后是"DATA"命令来发送邮件内容。 4. **关闭连接**:完成邮件发送后,...
在Lotus Domino开发环境中,Java代理是用于执行服务器端任务的重要工具,它们可以自动化许多功能,如处理数据、发送邮件等。"lotus domnio java代理传值"这个主题主要涉及如何在Java代码中创建和使用代理,并在代理...
例如,可以使用`JMail.sendMail()`方法,传入发件人、收件人、主题和邮件正文等参数,JMail会处理与SMTP服务器的交互,自动完成邮件发送。同时,JMail还支持附件、HTML邮件、多部分消息等特性。 POP3(Post Office ...
通过一定的加密或者代理机制,系统可以在不暴露真实邮箱地址的情况下,接收和发送邮件。这样既保护了站长的隐私,减少了垃圾邮件的可能性,又不会阻碍用户通过邮件与站长进行联系。这对于维护网站的正常运营,建立...
JavaMail是一种开源的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。IMAP(Internet Message Access Protocol)是一种标准的邮件访问协议,用于从邮件服务器检索邮件。Exchange 2007是微软的企业级...