




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用JavaMail发送邮件需要用到mail.jar和activtion.jar两个包。该类实现了较完整的邮件发送功能,包括以HTML格式发送,添加附件和抄送人。下面是具体的代码:Mail.java: Java代码 1. package cn.cgw.util.mail; 2. 3. import java.util.Properties; 4. 5. import javax.activation.DataHandler;
2、60;6. import javax.activation.FileDataSource; 7. import javax.mail.Address; 8. import javax.mail.BodyPart; 9. import javax.mail.Message; 10. import javax.mail.Multipart; 11. import javax.mail.Session; 12.
3、 import javax.mail.Transport; 13. import ernet.InternetAddress; 14. import ernet.MimeBodyPart; 15. import ernet.MimeMessage; 16. import ernet.MimeMultipart; 17.
4、60; 18. 19. public class Mail 20. 21. private MimeMessage mimeMsg; /MIME邮件对象 22. private Session session; /邮件会话对象 23.
5、160; private Properties props; /系统属性 24. private boolean needAuth = false; /smtp是否需要认证 25. /smtp认证用户名和密码 26. private Stri
6、ng username; 27. private String password; 28. private Multipart mp; /Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象 29. 30.
7、60; /* 31. * Constructor 32. * param smtp 邮件发送服务器 33. */ 34. public Mail(String smtp) 35.
8、 setSmtpHost(smtp); 36. createMimeMessage(); 37. 38. 39. /* 40.
9、* 设置邮件发送服务器 41. * param hostName String 42. */ 43. public void setSmtpHost(String hostName) 44.
10、; System.out.println("设置系统属性:mail.smtp.host = "+hostName); 45. if(props = null) 46. props = System.ge
11、tProperties(); /获得系统属性对象 47. props.put("mail.smtp.host",hostName); /设置SMTP主机 48. 49. 50. 51. /* 5
12、2. * 创建MIME邮件对象 53. * return 54. */ 55. public boolean createMimeMessage() 56. &
13、#160;57. try 58. System.out.println("准备获取邮件会话对象!"); 59. se
14、ssion = Session.getDefaultInstance(props,null); /获得邮件会话对象 60. 61. catch(Exception e) 62. &
15、#160; System.err.println("获取邮件会话对象时发生错误!"+e); 63. return false; 64. 65.
16、 66. System.out.println("准备创建MIME邮件对象!"); 67. try 68. mimeMsg
17、0;= new MimeMessage(session); /创建MIME邮件对象 69. mp = new MimeMultipart(); 70. 71.
18、 return true; 72. catch(Exception e) 73. System.err.println("创建MIME邮件对象失败!&quo
19、t;+e); 74. return false; 75. 76. 77.
20、160;78. /* 79. * 设置SMTP是否需要验证 80. * param need 81. */ 82. public void setNeedAuth(boolean need)
21、; 83. System.out.println("设置smtp身份认证:mail.smtp.auth = "+need); 84. if(props = null) props = System.getProperties();
22、0;85. if(need) 86. props.put("mail.smtp.auth","true"); 87. else
23、60;88. props.put("mail.smtp.auth","false"); 89. 90. 91. 92.
24、; /* 93. * 设置用户名和密码 94. * param name 95. * param pass 96. */ 97. public void se
25、tNamePass(String name,String pass) 98. username = name; 99. password = pass; 100.
26、; 101. 102. /* 103. * 设置邮件主题 104. * param mailSubject 105. * return 106. */ 107. &
27、#160; public boolean setSubject(String mailSubject) 108. System.out.println("设置邮件主题!"); 109. try 110.
28、60; mimeMsg.setSubject(mailSubject); 111. return true; 112. 113.
29、 catch(Exception e) 114. System.err.println("设置邮件主题发生错误!"); 115.
30、 return false; 116. 117. 118. 119. /* 120. * 设置邮件正文 12
31、1. * param mailBody String 122. */ 123. public boolean setBody(String mailBody) 124. tr
32、y 125. BodyPart bp = new MimeBodyPart(); 126. bp.setContent(""+mailBody,"text/html;char
33、set=GBK"); 127. mp.addBodyPart(bp); 128. 129. return
34、;true; 130. catch(Exception e) 131. System.err.println("设置邮件正文时发生错误!"+e); 132. retur
35、n false; 133. 134. 135. /* 136. * 添加附件 137. * param fil
36、ename String 138. */ 139. public boolean addFileAffix(String filename) 140. 141. System.out
37、.println("增加邮件附件:"+filename); 142. try 143. BodyPart bp = new MimeBodyPart(); 144.
38、0; FileDataSource fileds = new FileDataSource(filename); 145. bp.setDataHandler(new DataHandler(fileds); 146.
39、 bp.setFileName(fileds.getName(); 147. 148. mp.addBodyPart(bp)
40、; 149. 150. return true; 151. catch(Exception
41、e) 152. System.err.println("增加邮件附件:"+filename+"发生错误!"+e); 153. return false; 154
42、. 155. 156. 157. /* 158. * 设置发信人 159. * param&
43、#160;from String 160. */ 161. public boolean setFrom(String from) 162. System.out.println("设置发信人!");
44、;163. try 164. mimeMsg.setFrom(new InternetAddress(from); /设置发信人 165.
45、 return true; 166. catch(Exception e) 167. return false; 168.
46、; 169. 170. /* 171. * 设置收信人 172. * param to String 173. */
47、0; 174. public boolean setTo(String to) 175. if(to = null)return false; 176. try 177.
48、160; mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to); 178. return true; 179.
49、0; catch(Exception e) 180. return false; 181. 182.
50、160; 183. 184. /* 185. * 设置抄送人 186. * param copyto String 187. */ 188
51、. public boolean setCopyTo(String copyto) 189. 190. if(copyto = null)return false; 191.
52、0; try 192. mimeMsg.setRecipients(Message.RecipientType.CC,(Address)InternetAddress.parse(copyto); 193. return true; 194.
53、60; 195. catch(Exception e) 196. return false; 197. 198.
54、160; 199. /* 200. * 发送邮件 201. */ 202. public boolean sendOut() 203.
55、 204. try 205. mimeMsg.setContent(mp); 206. mimeMsg.saveChanges
56、(); 207. System.out.println("正在发送邮件."); 208. 209.
57、160; Session mailSession = Session.getInstance(props,null); 210. Transport transport = mailSession.getTransport("smtp"); 211.
58、; transport.connect(String)props.get("mail.smtp.host"),username,password); 212. transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.Re
59、cipientType.TO); 213. transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC); 214. /transport.send(
60、mimeMsg); 215. 216. System.out.println("发送邮件成功!"); 217.
61、160; transport.close(); 218. 219. return true; 220.
62、 catch(Exception e) 221. System.err.println("邮件发送失败!"+e); 222. return fal
63、se; 223. 224. 225. 226. /* 227. * 调用sendOut方法完成邮件发送 228. *
64、param smtp 229. * param from 230. * param to 231. * param subject 232. * param content 233.
65、 * param username 234. * param password 235. * return boolean 236. */ 237. public static boolean send(St
66、ring smtp,String from,String to,String subject,String content,String username,String password) 238. Mail theMail = new Mail(smtp); 239.
67、60; theMail.setNeedAuth(true); /需要验证 240. 241. if(!theMail.setSubject(subject) return false; 242.
68、0;if(!theMail.setBody(content) return false; 243. if(!theMail.setTo(to) return false; 244. if(!theMail.setFrom(from) return false; 245.
69、; theMail.setNamePass(username,password); 246. 247. if(!theMail.sendOut() return false; 248.
70、160; return true; 249. 250. 251. /* 252. * 调用sendOut方法完成邮件发送,带抄送 253. * param smtp
71、0;254. * param from 255. * param to 256. * param copyto 257. * param subject 258. * p
72、aram content 259. * param username 260. * param password 261. * return boolean 262. */ 263.
73、0;public static boolean sendAndCc(String smtp,String from,String to,String copyto,String subject,String content,String username,String password) 264. Mail theMail =
74、new Mail(smtp); 265. theMail.setNeedAuth(true); /需要验证 266. 267. if(!theMail.setSubject(subject) return
75、;false; 268. if(!theMail.setBody(content) return false; 269. if(!theMail.setTo(to) return false; 270. i
76、f(!theMail.setCopyTo(copyto) return false; 271. if(!theMail.setFrom(from) return false; 272. theMail.setNamePass(username,password); 273. &
77、#160; 274. if(!theMail.sendOut() return false; 275. return true; 276. 277.
78、60; 278. /* 279. * 调用sendOut方法完成邮件发送,带附件 280. * param smtp 281. * param from 282. * param
79、 to 283. * param subject 284. * param content 285. * param username 286. * param password 287.
80、60; * param filename 附件路径 288. * return 289. */ 290. public static boolean send(String smtp,String from,String to,String subject,
81、String content,String username,String password,String filename) 291. Mail theMail = new Mail(smtp); 292. theMail.setNeedAuth(true);
82、;/需要验证 293. 294. if(!theMail.setSubject(subject) return false; 295. if(!theMail.setBody(content) return
83、0;false; 296. if(!theMail.addFileAffix(filename) return false; 297. if(!theMail.setTo(to) return false; 298.
84、 if(!theMail.setFrom(from) return false; 299. theMail.setNamePass(username,password); 300. 301. if(!t
85、heMail.sendOut() return false; 302. return true; 303. 304. 305. /* 306. * 调用sen
86、dOut方法完成邮件发送,带附件和抄送 307. * param smtp 308. * param from 309. * param to 310. * param copyto 311. * param subject 312. * param content 313. * param username 314. * param password 315. * param f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年康复医学评定与干预措施模拟考试答案及解析
- 信息技术行业职业病防护措施
- 提升四年级学生语文自学能力措施
- 冰雪产业开发项目进度表及保障措施
- 沥青砼路面施工质量检测通病及防治措施
- 传媒广告单位职工教育费用管控措施
- 财政投资合同评审流程
- 店铺翻修合同(标准版)
- 中小合同(标准版)
- 特殊学生课后托管帮扶方案及措施
- 教师和学校的故事征文
- IATF16949质量体系年度过程指标范例
- 护理伦理与卫生法律法规高职PPT完整全套教学课件
- 广东建筑材料检测员上岗考试卷
- 部编六年级语文上册一二单元教案
- 游泳社会指导员专项理论考试复习题库汇总(附答案)
- 工程量确认单
- 先进制造技术第1章
- JJG 966-2010手持式激光测距仪
- 中班语言绘本《点》课件
- 大数据与金融课件
评论
0/150
提交评论