通过common-emai类库发送普通邮件和带有附件的邮件的完整示例
来源:互联网 发布:iphone手机数据恢复 编辑:程序博客网 时间:2024/04/29 21:40
1.此示例是通过maven构建,pom.xml文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ilucky.util.email</groupId> <artifactId>email-util</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>email-util</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies><dependency><groupId>org.apache.commons</groupId><artifactId>commons-email</artifactId><version>1.3.3</version></dependency> </dependencies></project>2.工具类如下:
package com.ilucky.util.email;import java.net.URL;import org.apache.commons.mail.DefaultAuthenticator;import org.apache.commons.mail.EmailAttachment;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.MultiPartEmail;import org.apache.commons.mail.SimpleEmail;/** * @author IluckySi * @since 20150108 */public class EmailUtil {private String hostName;// 邮箱服务器.private int port; //服务器端口号.private String defaultAuthenticatorUsername;// 用户名.private String defaultAuthenticatorPassword;// 密码.private String charset = "GB2312";// 邮件编码方式,默认为GB2312.private int timeout = 8000;//超时时间,单位毫秒,默认为8000.private String from;// 发送方.private String to;// 接收方.private String[] tos;// 多个接收方.private String cc;// 抄送方.private String[] ccs;// 多个抄送方.private String bcc;// 秘密抄送方.private String[] bccs;// 多个秘密抄送方.private String subject;// 标题.private String msg;// 内容.private String localAttachmentPath;// 本地附件.private String remoteAttachmentPath;// 远程附件.private String attachmentName;//附件名称.private String attachDescription;//附件描述.public String getHostName() {return hostName;}public void setHostName(String hostName) {this.hostName = hostName;}public int getPort() {return port;}public void setPort(int port) {this.port = port;}public String getDefaultAuthenticatorUsername() {return defaultAuthenticatorUsername;}public void setDefaultAuthenticatorUsername(String defaultAuthenticatorUsername) {this.defaultAuthenticatorUsername = defaultAuthenticatorUsername;}public String getDefaultAuthenticatorPassword() {return defaultAuthenticatorPassword;}public void setDefaultAuthenticatorPassword(String defaultAuthenticatorPassword) {this.defaultAuthenticatorPassword = defaultAuthenticatorPassword;}public String getCharset() {return charset;}public void setCharset(String charset) {this.charset = charset;}public int getTimeout() {return timeout;}public void setTimeout(int timeout) {this.timeout = timeout;}public String getFrom() {return from;}public void setFrom(String from) {this.from = from;}public String getTo() {return to;}public void setTo(String to) {this.to = to;}public String[] getTos() {return tos;}public void setTos(String[] tos) {this.tos = tos;}public String getCc() {return cc;}public void setCc(String cc) {this.cc = cc;}public String[] getCcs() {return ccs;}public void setCcs(String[] ccs) {this.ccs = ccs;}public String getBcc() {return bcc;}public void setBcc(String bcc) {this.bcc = bcc;}public String[] getBccs() {return bccs;}public void setBccs(String[] bccs) {this.bccs = bccs;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public String getLocalAttachmentPath() {return localAttachmentPath;}public void setLocalAttachmentPath(String localAttachmentPath) {this.localAttachmentPath = localAttachmentPath;}public String getRemoteAttachmentPath() {return remoteAttachmentPath;}public void setRemoteAttachmentPath(String remoteAttachmentPath) {this.remoteAttachmentPath = remoteAttachmentPath;}public String getAttachmentName() {return attachmentName;}public void setAttachmentName(String attachmentName) {this.attachmentName = attachmentName;}public String getAttachDescription() {return attachDescription;}public void setAttachDescription(String attachDescription) {this.attachDescription = attachDescription;}/** * 发送普通邮件. 支持一个/多个接收方,一个/多个抄送方,一个/多个秘密抄送方. * * @return boolean */public boolean sendWithMsg() {boolean result = false;SimpleEmail email = new SimpleEmail();email.setSmtpPort(port);try {email.setHostName(hostName);email.setAuthenticator(new DefaultAuthenticator(defaultAuthenticatorUsername, defaultAuthenticatorPassword));email.setCharset(charset);email.setSocketConnectionTimeout(timeout);email.setFrom(from);if (to != null) {email.addTo(to);}if (tos != null) {email.addTo(tos);}if (cc != null) {email.addCc(cc);}if (ccs != null) {email.addCc(ccs);}if (bcc != null) {email.addBcc(bcc);}if (bccs != null) {email.addBcc(bccs);}if (subject != null) {email.setSubject(subject);}if (msg != null) {email.setMsg(msg);}if (email.send() != null) {System.out.println("发送邮件成功");result = true;} else {System.out.println("发送邮件失败");}} catch (EmailException e) {System.out.println("发送邮件失败: " + e);}return result;}/** * 发送带有附件的邮件. 支持一个/多个接收方,一个/多个抄送方,一个/多个秘密抄送方. * * @return boolean */public boolean sendWithMsgAndAttachment() {boolean result = false;MultiPartEmail email = new MultiPartEmail();email.setSmtpPort(port);EmailAttachment attachment = new EmailAttachment();try {email.setHostName(hostName);email.setAuthenticator(new DefaultAuthenticator(defaultAuthenticatorUsername, defaultAuthenticatorPassword));email.setCharset(charset);email.setSocketConnectionTimeout(timeout);email.setFrom(from);if (to != null) {email.addTo(to);}if (tos != null) {email.addTo(tos);}if (cc != null) {email.addCc(cc);}if (ccs != null) {email.addCc(ccs);}if (bcc != null) {email.addBcc(bcc);}if (bccs != null) {email.addBcc(bccs);}if (subject != null) {email.setSubject(subject);}if (msg != null) {email.setMsg(msg);}if (localAttachmentPath != null) {attachment.setPath(localAttachmentPath);attachment.setDisposition(EmailAttachment.ATTACHMENT);}if (remoteAttachmentPath != null) {attachment.setURL(new URL(remoteAttachmentPath));attachment.setDisposition(EmailAttachment.ATTACHMENT);}if(attachmentName != null) {attachment.setName(attachmentName);}if(attachDescription != null) {attachment.setDescription(attachDescription);}email.attach(attachment);if (email.send() != null) {System.out.println("发送邮件成功");result = true;} else {System.out.println("发送邮件失败");}} catch (EmailException e) {System.out.println("发送邮件失败: " + e);} catch (Exception e) {System.out.println("发送邮件失败: " + e);}return result;}}3.测试类如下:
package com.ilucky.util;import com.ilucky.util.email.EmailUtil;/** * @author IluckySi * @since 20150108 * * 注意:以后可以扩展回复邮件,定时发送等. */public class MainTest {public static void main(String[] args) {//发送普通邮件.//post1();//post2();post3();}public static void post1() {EmailUtil eu = new EmailUtil();eu.setHostName("smtp.sohu.com");eu.setPort(25);eu.setDefaultAuthenticatorUsername("sidongxue");eu.setDefaultAuthenticatorPassword("123456");eu.setCharset("GB2312");eu.setTimeout(16000);eu.setFrom("sidongxue@sohu.com");eu.setTo("sidongxue@sohu.com");eu.setSubject("测试邮件");eu.setMsg("亲,这是一封测试邮件!");System.out.println("发送邮件结果: " + eu.sendWithMsg());}public static void post2() {EmailUtil eu = new EmailUtil();eu.setHostName("smtp.sohu.com");eu.setPort(25);eu.setDefaultAuthenticatorUsername("sidongxue");eu.setDefaultAuthenticatorPassword("123456");eu.setCharset("GB2312");eu.setTimeout(30000);eu.setFrom("sidongxue@sohu.com");String[] tos = new String[]{"1151262684@qq.com", "570258762@qq.com"};eu.setTos(tos);String[] ccs = new String[]{"1016336364@qq.com", "pengzhongchen@gmail.com"};eu.setCcs(ccs);String[] bccs = new String[]{"1198377646@qq.com", "sidongxue@sohu.com"};eu.setBccs(bccs);eu.setSubject("测试邮件");eu.setMsg("亲,这是一封测试邮件,如果收到邮件,请及时回复,十分感谢,如果回复晚了,后果自负!");System.out.println("发送邮件结果: " + eu.sendWithMsg());}public static void post3() {EmailUtil eu = new EmailUtil();eu.setHostName("smtp.sohu.com");eu.setPort(25);eu.setDefaultAuthenticatorUsername("sidongxue");eu.setDefaultAuthenticatorPassword("123456");eu.setCharset("GB2312");eu.setTimeout(16000);eu.setFrom("sidongxue@sohu.com");eu.setTo("sidongxue@sohu.com");eu.setSubject("测试邮件"); eu.setMsg("亲,这是一封测试邮件!");eu.setAttachmentName("哈哈");eu.setAttachDescription("这是一个文件,点我!");eu.setLocalAttachmentPath("D:\\ilucky\\新建文本文档22.txt");System.out.println("发送邮件结果: " + eu.sendWithMsgAndAttachment());}}注意:
eu.setDefaultAuthenticatorUsername("sidongxue");eu.setDefaultAuthenticatorPassword("123456");此处用自己的邮箱用户名和密码.
0 0
- 通过common-emai类库发送普通邮件和带有附件的邮件的完整示例
- springMail的发送带有附件的邮件
- sendEmail发送带有附件的邮件
- Python 发送带有中文附件的邮件
- python发送带有附件的邮件
- python 发送带有附件的邮件
- php发送带有图片和附件的邮件
- 【python 数据报表】发送带有样式和附件的邮件
- Python学习:SMTP发送邮件(html)和带有附件的邮件
- 【C#工具类】发送邮件(带有图片和附件)
- JSP实现发送带有附件的邮件代码
- Python模块探秘 Smtplib发送带有各种附件的邮件
- JavaMail发送邮件带有附件
- Spring 发送带有内嵌图片和附件的邮件的java程序
- PHP中用pear包自带的类发送带有附件的邮件
- 发送普通文本和超文本邮件,并且把携带的附件显示在超文本文件中
- 《pro Spring》学习笔记之使用Spring+James邮件服务器发送带有附件的HTML邮件
- JAVAMAIL发送邮件正文是html格式并且显示图片还带有附件的邮件
- 刘奇-豌豆荚分布式redis的设计与实现
- 口吐白沫是癫痫吗
- 新闻客户端首页图片无限循环滚动展示(可点击触发不同事件)初步封装IOS
- 音频解码器madplay移植
- PHP学习问题
- 通过common-emai类库发送普通邮件和带有附件的邮件的完整示例
- 2015年薪酬大涨的15个IT岗位
- OSGi 框架嵌入 Http 服务器的运行环境配置
- android之layout_toLeftOf和layout_toRightOf出现的错误
- python 安装jpeg支持
- UVA 902 Password Search (字符串)
- linux Ctrl+H 显示隐藏的目录
- C# httpwebreuqest post传参数json
- 在线排队系统 queue-it.com