java发送Email代码实现

来源:互联网 发布:mac怎么给手机换铃声 编辑:程序博客网 时间:2024/05/18 22:45

非常感谢http://www.codefans.net/articles/209.shtml博文作者。

代码非常简单,就不做过多解释。

首先需要导入mail.jar,本例子使用的jar包下载地址:http://download.csdn.net/detail/harderxin/4451541

直接上代码!

package org.dyb.email;import java.util.Properties;import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;public class Mail {private MimeMessage mimeMsg;private Session session;private Properties props;private String username;private String password;private Multipart mp;public Mail() {}public Mail(String smtp) {setSmtpHost(smtp);createMimeMessage();}private void setSmtpHost(String smtp) {System.out.println("设置系统属性:mail.smtp.host  " + smtp);if (null == props) {props = System.getProperties();}props.put("mail.smtp.host", smtp);}private boolean createMimeMessage() {try {System.out.println("准备获取邮件会话对象!");session = Session.getDefaultInstance(props, null);} catch (Exception e) {System.out.println("获取邮件会话错误!" + e);return false;}System.out.println("准备创建MIME邮件对象!");try {mimeMsg = new MimeMessage(session);mp = new MimeMultipart();return true;} catch (Exception e) {System.out.println("创建MIME邮件对象失败!" + e);return false;}}/** * 定义SMTP是否需要验证 */public void setNeedAuth(boolean need) {System.out.println("设置smtp身份认证:mail.smtp.auth = " + need);if (null == props) {props = System.getProperties();}if (need)props.put("mail.smtp.auth", "true");elseprops.put("mail.smtp.auth", "false");}public void setNameAndPassword(String username, String password) {this.username = username;this.password = password;}/** * 定义邮件主题 *  * @return */public boolean setSubject(String mailSubject) {System.out.println("定义邮件主题!");try {mimeMsg.setSubject(mailSubject);return true;} catch (Exception e) {System.err.println("定义邮件主题发生错误!" + e);return false;}}public boolean setBody(String mailBody) {try {BodyPart bp = new MimeBodyPart();bp.setContent("" + mailBody, "text/html;charset=GBK");mp.addBodyPart(bp);return true;} catch (Exception e) {return false;}}/** * 设置发信人 *  * @return */public boolean setFrom(String from) {System.out.println("设置发信人!");try {mimeMsg.setFrom(new InternetAddress(from));return true;} catch (Exception e) {return false;}}/** * 定义收信人 *  * @param to * @return */public boolean setTo(String to) {if (to == null) {System.out.println("没有定义收信人!");return false;}System.out.println("定义收信人!");try {mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));return true;} catch (Exception e) {return false;}}/** * 定义抄送人 *  * @param copyto * @return */public boolean setCopyTo(String copyto) {if (copyto == null)return false;try {mimeMsg.setRecipients(Message.RecipientType.CC,(Address[]) InternetAddress.parse(copyto));return true;} catch (Exception e) {return false;}}public boolean sendOut() {try {mimeMsg.setContent(mp);mimeMsg.saveChanges();System.out.println("邮件发送中....");Session mailSession = Session.getInstance(props, null);Transport transport = mailSession.getTransport("smtp");transport.connect((String) props.get("mail.smtp.host"), username,password);transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));System.out.println("发送成功!");transport.close();return true;} catch (Exception e) {System.err.println("邮件失败!" + e);return false;}}/** * 调用sendOut方法完成发送 *  * @param smtp * @param from * @param to * @param copyto * @param subject * @param content * @param username * @param password * @return */public static boolean sendAndCc(String smtp, String from, String to,String copyto, String subject, String content, String username,String password) {Mail theMail = new Mail(smtp);theMail.setNeedAuth(true); // 验证if (!theMail.setSubject(subject))return false;if (!theMail.setBody(content))return false;if (!theMail.setTo(to))return false;if (!theMail.setCopyTo(copyto))return false;if (!theMail.setFrom(from))return false;theMail.setNameAndPassword(username, password);if (!theMail.sendOut())return false;return true;}public static void main(String[] args) {String smtp = "smtp.163.com";// smtp服务器String from = "xxxxx@163.com";// 邮件显示名称String to = "1111111@qq.com";// 收件人的邮件地址,必须是真实地址String copyto = "";// 抄送人邮件地址String subject = "测试邮件";// 邮件标题String content = "你好!";// 邮件内容String username = "xxxxxxx@163.com";// 发件人真实的账户名String password = "xxxxxxx";// 发件人密码Mail.sendAndCc(smtp, from, to, copyto, subject, content, username,password);}}

运行结果:

设置系统属性:mail.smtp.host  smtp.163.com
准备获取邮件会话对象!
准备创建MIME邮件对象!
设置smtp身份认证:mail.smtp.auth = true
定义邮件主题!
定义收信人!
设置发信人!
邮件发送中....
发送成功!

0 0