`
qzxfl008
  • 浏览: 75858 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

Java Mail学习

    博客分类:
  • java
阅读更多
邮件实体类 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开发教程 Java Mail API的开发是SUN为Java开发者提供公用API框架的持续努力的良好例证。...乍看起来,Java Mail API所拥有的类总数以及类之间的关系可能让人误解为要花费漫长的学习时间。

    Java Mail实例

    Java Mail邮件开发实例,不过大家注意了,这不是大的项目,是一个小例子,作为初学者的最好资料。...里面资料包括Java Mail学习笔记和现成的例子,以及Java Mail开发所需要的Jar包都有了,上手容易。

    第九 Java Mail 编程PPT学习教案.pptx

    第九 Java Mail 编程PPT学习教案.pptx

    java+mail文档代码源代码学习

    java+mail文档代码源代码学习

    Mail_java.rar_java mail

    用java实现的邮件发送和接收源代码,没有界面,只是源码,可以学习研究

    java mail用到的工具.rar

    java mail用到的工具.rar这是在慕课网上学习javaMail的时候 收集到的需要的 包 和配置软件和信息

    java学习很好的课件

    第1章JAVA概述.ppt 第2章 Java基础.ppt 第3章.ppt 第4章Java流程控制.ppt 第5章 数组.ppt 第6章 类的继承和多.ppt ...第九章 Java Mail 编程.ppt ……………… 第11章 Web服务编程.ppt ………………

    java源码包---java 源码 大量 实例

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一...

    JAVA上百实例源码以及开源项目源代码

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    JAVA语言入门基础学习

     Java来 自 于Sun公 司 的 一 个 叫Green的 项 目, 其 原 先 的 目 的 是 为 家 用 消 费 电 子 产 品 开 发 一 个 分 布 式 代 码 系 统, 这 样 我 们 可 以 把E-mail发 给 电 冰 箱、 电 视 机 等 家 用 电 器...

    java mail 邮件群发源码

    javamail邮件群发源码,供学习和参考,是原工程

    Java Mail群发实例、邮件群发相关、打造自己的EDM系统

    Java实现邮件群发系统、简单配置即开使用。外贸企业打造自己的邮件群发平台。 本源码仅限于学习研究使用,请勿用于其它用途,谢谢。

    Java网络高级编程

    第8章介绍异步消息服务技术JMS和Java Mail技术;第9章介绍利用WebLogic为服务器的EJB技术。第10章介绍Java安全体系结构、密钥、消息摘要、数字签名、访问控制、安全套接口SSL、主体身份认证JAAS和公共密钥构架PKI...

    java相关的mail.doc

    java 发送邮件的资料,您可以学习学习!

    JSP与Java Mail API

    直到最近的一个项目,需要JavaMail所以我打算认真的学习一下这种技术,因为我目前擅长的是Struts,而Struts又不具备邮件发送的功能,所以我要深刻的学习一下JavaMailAPI.所以在我学会了JavaMail的基本操作的同时也将这篇...

    java源码包4

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...

    Java2EE源码-Java源码

    Java2EE源码,包含java.interceptor、java.mail、java.annotation、java.jsm、java.transaction、java.xml,可供广大想学习java源码的朋友使用!

    java源码包3

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...

    JAVA上百实例源码以及开源项目

    笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此...

    java-for-pop3-by-socket.rar_java socket mail_learn c

    利用socket的实现的pop3邮件接收的java程序,文档中有完整的说明和程序,适合初学者使用学习。Pop3 mail received socket implementations java program, complete instructions and procedures document, use for ...

Global site tag (gtag.js) - Google Analytics