邮件实体类 MailInfo
package org.xfl.jmail;
import java.util.Properties;
public class MailInfo {
private String host;// 邮件服务器域名或IP
private String from;// 发件人
private String port;
private String to;// 收件人
private String cc;// 抄送人
private String username;// 发件人用户名
private String password;// 发件人密码
private String title;// 邮件的主题
private String content;// 邮件的内容
private boolean validate = false;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
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 getCc() {
return cc;
}
public void setCc(String cc) {
this.cc = cc;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
public boolean isValidate() {
return validate;
}
public void setValidate(boolean validate) {
this.validate = validate;
}
public Properties getProperty() {
Properties prop = new Properties();
prop.put("mail.smtp.host", this.host);
prop.put("mail.smtp.port", this.port);
prop.put("mail.smtp.auth", validate ? "true" : "false");
return prop;
}
}
自定义验证类MyAuthenticator
package org.xfl.jmail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MyAuthenticator extends Authenticator {
private String strUser;
private String strPwd;
public MyAuthenticator(String user, String password) {
this.strUser = user;
this.strPwd = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(strUser, strPwd);
}
}
发送器类
package org.xfl.jmail;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailSender {
protected boolean sendMail(MailInfo mailInfo) {
Properties prop = mailInfo.getProperty();
MyAuthenticator auth = null;
if (mailInfo.isValidate()) {
auth = new MyAuthenticator(mailInfo.getUsername(),
mailInfo.getPassword());
}
Session sendMailSession = Session.getDefaultInstance(prop, auth);
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFrom());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getTo());
mailMessage.setRecipient(Message.RecipientType.TO, to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getTitle());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// 设置邮件消息的主要内容
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
// 发送邮件
Transport.send(mailMessage);
return true;
} catch (MessagingException ex) {
ex.printStackTrace();
}
return false;
}
}
测试:
package org.xfl.jmail;
public class JavaMailMain {
private static String user = "****@sina.com";
private static String pwd = "****";
public static void main(String[] args) {
MailInfo mail = new MailInfo();
mail.setFrom("****@sina.com");
mail.setTo("****@qq.com");
mail.setTitle("Java Mail test");
mail.setContent("hello world");
mail.setUsername(user);
mail.setPassword(pwd);
mail.setHost("smtp.sina.com");
mail.setPort("25");
mail.setValidate(true);
MailSender jmail = new MailSender();
if (jmail.sendMail(mail)) {
System.out.println("ok");
}
else {
System.out.println("failure");
}
}
}
分享到:
相关推荐
张孝祥的java mail开发教程 Java Mail API的开发是SUN为Java开发者提供公用API框架的持续努力的良好例证。...乍看起来,Java Mail API所拥有的类总数以及类之间的关系可能让人误解为要花费漫长的学习时间。
Java Mail邮件开发实例,不过大家注意了,这不是大的项目,是一个小例子,作为初学者的最好资料。...里面资料包括Java Mail学习笔记和现成的例子,以及Java Mail开发所需要的Jar包都有了,上手容易。
第九 Java Mail 编程PPT学习教案.pptx
java+mail文档代码源代码学习
用java实现的邮件发送和接收源代码,没有界面,只是源码,可以学习研究
java mail用到的工具.rar这是在慕课网上学习javaMail的时候 收集到的需要的 包 和配置软件和信息
第1章JAVA概述.ppt 第2章 Java基础.ppt 第3章.ppt 第4章Java流程控制.ppt 第5章 数组.ppt 第6章 类的继承和多.ppt ...第九章 Java Mail 编程.ppt ……………… 第11章 Web服务编程.ppt ………………
一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一...
一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...
Java来 自 于Sun公 司 的 一 个 叫Green的 项 目, 其 原 先 的 目 的 是 为 家 用 消 费 电 子 产 品 开 发 一 个 分 布 式 代 码 系 统, 这 样 我 们 可 以 把E-mail发 给 电 冰 箱、 电 视 机 等 家 用 电 器...
javamail邮件群发源码,供学习和参考,是原工程
Java实现邮件群发系统、简单配置即开使用。外贸企业打造自己的邮件群发平台。 本源码仅限于学习研究使用,请勿用于其它用途,谢谢。
第8章介绍异步消息服务技术JMS和Java Mail技术;第9章介绍利用WebLogic为服务器的EJB技术。第10章介绍Java安全体系结构、密钥、消息摘要、数字签名、访问控制、安全套接口SSL、主体身份认证JAAS和公共密钥构架PKI...
java 发送邮件的资料,您可以学习学习!
直到最近的一个项目,需要JavaMail所以我打算认真的学习一下这种技术,因为我目前擅长的是Struts,而Struts又不具备邮件发送的功能,所以我要深刻的学习一下JavaMailAPI.所以在我学会了JavaMail的基本操作的同时也将这篇...
一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...
Java2EE源码,包含java.interceptor、java.mail、java.annotation、java.jsm、java.transaction、java.xml,可供广大想学习java源码的朋友使用!
一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...
笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此...
利用socket的实现的pop3邮件接收的java程序,文档中有完整的说明和程序,适合初学者使用学习。Pop3 mail received socket implementations java program, complete instructions and procedures document, use for ...