java 邮件接口_WebService java 邮件发送接口

1 packagecom.reagle.bean;2

3

4 importjava.util.Date;5 importjava.util.List;6 importjava.util.Properties;7

8 importjavax.activation.DataHandler;9 importjavax.activation.FileDataSource;10 importjavax.mail.Address;11 importjavax.mail.BodyPart;12 importjavax.mail.Message;13 importjavax.mail.MessagingException;14 importjavax.mail.Part;15 importjavax.mail.PasswordAuthentication;16 importjavax.mail.Session;17 importjavax.mail.Transport;18 importjavax.mail.URLName;19 importjavax.mail.internet.AddressException;20 importjavax.mail.internet.InternetAddress;21 importjavax.mail.internet.MimeBodyPart;22 importjavax.mail.internet.MimeMessage;23 importjavax.mail.internet.MimeMultipart;24

25 importorg.apache.log4j.LogManager;26 importorg.apache.log4j.Logger;27

28 public classMailBean {29 private Logger log = LogManager.getLogger(MailBean.class);30 /**

31 * 主题32 */

33 privateString subject;34 /**

35 * 发送邮箱地址36 */

37 privateString sendMail;38 /**

39 * 发送邮箱密码40 */

41 privateString sendMailPassword;42 /**

43 * 收件人44 */

45 private Listtos;46 /**

47 * 抄送48 */

49 private Listccs;50 /**

51 * 发送内容52 */

53 privateString content;54 /**

55 * 内容编码56 */

57 privateString character;58 /**

59 * 发送服务器地址60 */

61 privateString mailHost;62 /**

63 * 附件64 */

65 private Listaccessories;66 /**

67 * 发送是否需要校验68 */

69 privateString isCheckSend;70 /**

71 *72 *@paramsubject 主题73 *@paramsendMail 发件人74 *@paramsendMailPassword 密码75 *@paramtos 收件人76 *@paramcontent 内容77 *@paramcharacter 内容字符集78 *@parammailHost SMTP主机79 *@paramisCheckSend 是否需要验证80 */

81 publicMailBean(String subject, String sendMail, String sendMailPassword,82 Listtos, String content, String character,83 String mailHost, String isCheckSend) {84 this.subject =subject;85 this.sendMail =sendMail;86 this.sendMailPassword =sendMailPassword;87 this.tos =tos;88 this.content =content;89 this.character =character;90 this.mailHost =mailHost;91 this.isCheckSend =isCheckSend;92 }93 /**

94 *95 *@paramsubject 主题96 *@paramsendMail 发件人97 *@paramsendMailPassword 密码98 *@paramtos 收件人99 *@paramcontent 内容100 *@paramcharacter 内容字符集101 *@parammailHost SMTP主机102 *@paramisCheckSend 是否需要验证103 *@paramaccessories 附件104 */

105 publicMailBean(String subject, String sendMail, String sendMailPassword,106 Listtos, String content, String character,107 String mailHost, Listaccessories, String isCheckSend) {108 this.subject =subject;109 this.sendMail =sendMail;110 this.sendMailPassword =sendMailPassword;111 this.tos =tos;112 this.content =content;113 this.character =character;114 this.mailHost =mailHost;115 this.accessories =accessories;116 this.isCheckSend =isCheckSend;117 }118 /**

119 *120 *@paramsubject 主题121 *@paramsendMail 发件人122 *@paramsendMailPassword 密码123 *@paramtos 收件人124 *@paramcontent 内容125 *@paramcharacter 内容字符集126 *@parammailHost SMTP主机127 *@paramisCheckSend 是否需要验证128 *@paramaccessories 附件129 *@paramcc 抄送130 */

131 publicMailBean(String subject, String sendMail, String sendMailPassword,132 ListtakeMail, String content, String character,133 String mailHost, List accessories, String isCheckSend, Listcc) {134 this.subject =subject;135 this.sendMail =sendMail;136 this.sendMailPassword =sendMailPassword;137 this.tos =takeMail;138 this.content =content;139 this.character =character;140 this.mailHost =mailHost;141 this.accessories =accessories;142 this.isCheckSend =isCheckSend;143 this.ccs =cc;144 }145 publicString getSubject() {146 returnsubject;147 }148 public voidsetSubject(String subject) {149 this.subject =subject;150 }151 publicString getSendMail() {152 returnsendMail;153 }154 public voidsetSendMail(String sendMail) {155 this.sendMail =sendMail;156 }157 publicString getSendMailPassword() {158 returnsendMailPassword;159 }160 public voidsetSendMailPassword(String sendMailPassword) {161 this.sendMailPassword =sendMailPassword;162 }163

164 publicString getContent() {165 returncontent;166 }167 public voidsetContent(String content) {168 this.content =content;169 }170 publicString getCharacter() {171 returncharacter;172 }173 public voidsetCharacter(String character) {174 this.character =character;175 }176 publicString getMailHost() {177 returnmailHost;178 }179 public voidsetMailHost(String mailHost) {180 this.mailHost =mailHost;181 }182 public ListgetAccessories() {183 returnaccessories;184 }185 public void setAccessories(Listaccessories) {186 this.accessories =accessories;187 }188 publicString getCheckSend() {189 returnisCheckSend;190 }191 public voidsetCheckSend(String isCheckSend) {192 this.isCheckSend =isCheckSend;193 }194 public ListgetTos() {195 returntos;196 }197 public void setTos(Listtos) {198 this.tos =tos;199 }200 public ListgetCcs() {201 returnccs;202 }203 public void setCcs(Listccs) {204 this.ccs =ccs;205 }206 publicString getIsCheckSend() {207 returnisCheckSend;208 }209 public voidsetIsCheckSend(String isCheckSend) {210 this.isCheckSend =isCheckSend;211 }212 //获得所有收件人

213 private Address[] getAllTake() throwsArrayIndexOutOfBoundsException, AddressException{214 returnvalueOfAddress(tos);215 }216 private Address[] valueOfAddress(List list) throwsArrayIndexOutOfBoundsException, AddressException{217 Address[] takes = new Address[0];218 if(null == list || list.size() == 0)219 throw new ArrayIndexOutOfBoundsException("list is null");220 takes = newAddress[list.size()];221 for(int i = 0; i < list.size(); ++i) {222 takes[i] = InternetAddress.parse(list.get(i))[0];223 }224 returntakes;225 }226 private Address[] getAllOtherTake() throwsArrayIndexOutOfBoundsException, AddressException {227 if (null == ccs || ccs.size() == 0)228 return new Address[0];229 else

230 returnvalueOfAddress(getCcs());231 }232 //添加所有附件

233 private voidaddBodyPartByMimeMultipart(MimeMultipart mm,234 List filePaths) throwsMessagingException,235 ArrayIndexOutOfBoundsException, NullPointerException {236

237 if (null == filePaths || filePaths.size() == 0)238 return;239 if(null ==mm)240 throw new NullPointerException("MimeMultipart is null");241 for (int i = 0; i < filePaths.size(); i++) {242 MimeBodyPart bp = newMimeBodyPart();243 FileDataSource fileds = newFileDataSource(filePaths.get(i));244 DataHandler dh = newDataHandler(fileds);245 bp.setDisposition(Part.ATTACHMENT);246 bp.setFileName(fileds.getName());247 bp.setDataHandler(dh);248 mm.addBodyPart(bp);249 }250 }251

252 public boolean send() throwsException {253 boolean isSend = false;254

255 //设置SMTP发送服务器

256 Properties props =System.getProperties();257

258 //设置SMTP的主机

259 props.put("mail.smtp.host", mailHost);260

261 //需要经过验证

262 props.put("mail.smtp.auth", isCheckSend);263 //Authenticator auth = Authenticator264

265 //获得邮件会话对象

266 Session session = Session.getDefaultInstance(props,null);267 URLName url = new URLName(this.sendMail);268 PasswordAuthentication pw = new PasswordAuthentication(this.sendMail, this.sendMailPassword);269 session.setPasswordAuthentication(url, pw);270

271 //邮件对象

272 MimeMessage mimeMsg = newMimeMessage(session);273

274 MimeMultipart multipart = newMimeMultipart();275

276 //发送邮件地址

277 mimeMsg.setFrom(newInternetAddress(sendMail));278

279 //收件人

280 mimeMsg.setRecipients(Message.RecipientType.TO, getAllTake());281

282 mimeMsg.setSentDate(newDate());283 //抄送人

284 mimeMsg.setRecipients(Message.RecipientType.CC, getAllOtherTake());285

286 //主题 与字符编码

287 mimeMsg.setSubject(getSubject(), getCharacter());288

289 //设置邮件体格式

290 BodyPart bp = newMimeBodyPart();291 //bp.setContent(""292 //+ content, "text/html;charset="+getCharacter());

293

294 bp.setText(content);295

296 log.info(bp.getContent().toString());297 multipart.addBodyPart(bp);298

299

300 //添加附件

301 addBodyPartByMimeMultipart(multipart, getAccessories());302

303 isSend =process(session, mimeMsg, multipart, props);304

305 returnisSend;306 }307

308 private boolean process(Session session, MimeMessage mimeMsg, MimeMultipart multipart, Properties props) throwsMessagingException {309 boolean isSuccessfully = false;310 mimeMsg.setContent(multipart);311 mimeMsg.saveChanges();312 Session mailSession = Session.getInstance(props, null);313 Transport transport = mailSession.getTransport("smtp");314 transport.connect((String) props.get("mail.smtp.host"), getSendMail(),315 getSendMailPassword());316 transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients());317 log.info("Mail Successfully Sended!");318 transport.close();319 isSuccessfully = true;320 returnisSuccessfully;321 }322

323 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值