package com; 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; /* * 发送邮件的类 * 引入mail.jar包 */ public class Mail { private MimeMessage mimeMsg;// 邮件对象 private Session session; // 邮件会话对象 private Properties props; // 系统属性,即SMTP服务器 private String username; // 用户名 private String password; // 密码 private Multipart mp; // 对象用于封装邮件内容 // 构造方法 public Mail(String smtp) { setSmtpHost(smtp); createMimeMessage(); } // 设置邮件发送服务器 public void setSmtpHost(String hostName) { System.out.println("设置系统属性:mail.smtp.host=" + hostName); if (props == null) { props = System.getProperties();// 获得系统属性对象 } props.put("mail.smtp.host", hostName);// 设置SMTP主机 } // 创建MIME邮件对象 public 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 (props == null) props = System.getProperties(); if (need) { props.put("mail.smtp.auth", "true"); } else { props.put("mail.smtp.auth", "false"); } } public void setNamePass(String name, String pass) { username = name; password = pass; } /* * 设置邮件主题 */ public boolean setSubject(String mailSubject) { System.out.println("设置邮件主题!"); try { mimeMsg.setSubject(mailSubject); return true; } catch (Exception e) { System.err.println("设置邮件主题发生错误!"); return false; } } /* * 设置邮件正文 */ public boolean setBody(String mailBody) { try { BodyPart bp = new MimeBodyPart(); bp.setContent("" + mailBody, "text/html;charset=UTF-8"); mp.addBodyPart(bp); return true; } catch (Exception e) { System.err.println("设置邮件正文时发生错误!" + e); return false; } } /* * 设置发信人 */ public boolean setFrom(String from) { System.out.println("设置发信人!"); try { mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人 return true; } catch (Exception e) { return false; } } /* * 设置收信人 */ public boolean setTo(String to) { if (to == null) return false; System.out.println("设置收信人!"); try { mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); return true; } catch (Exception e) { return false; } } /* * 设置抄送人 */ 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方法完成邮件发送 */ 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.setNamePass(username, password); if (!theMail.sendOut()) return false; return true; } }
最近下载更多
伊不归 LV6
2022年4月20日
zhaojialiang LV7
2021年5月14日
ma406805131 LV15
2020年6月18日
周大福 LV12
2020年2月27日
怎么了 LV14
2019年1月14日
oceanchen LV14
2018年8月29日
17608417105 LV9
2018年8月22日
MYECLIPSEyar LV10
2018年7月30日
lw19900921 LV25
2018年7月5日
ruiyang LV5
2018年7月4日
最近浏览更多
1358849392 LV21
2022年12月27日
伊不归 LV6
2022年4月20日
1306878374 LV13
2022年4月12日
无语问苍天 LV1
2021年7月30日
luesjim LV11
2021年6月18日
zhaojialiang LV7
2021年5月14日
喵小兵 LV10
2021年3月13日
wcdmayb LV7
2021年2月14日
pxqtsht LV16
2021年1月28日
Jason137 LV8
2020年12月4日