欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java邮件发送-亚马逊Simple EMail Service (SES)作SMTP服务器

发布时间:2024/5/15 java 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java邮件发送-亚马逊Simple EMail Service (SES)作SMTP服务器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

AWS SES使用介绍可见:https://docs.aws.amazon.com/zh_cn/ses/latest/DeveloperGuide/Welcome.html

总结为一下两点即可:

1. 登陆AWS进入控制台,然后点击SMTP Settings,创建SMTP账户:Create My SMTP Credentials,按提示操作生成username and password,这个看起来类似IAM User的key。

AWS控制台地址为:https://console.aws.amazon.com

2.验证发送邮件地址,另外如果发给其他人,也需要在这里验证,系统会发邮件到对方邮箱让他确认,这样对方才能收到SES发来的邮件,就跟我们订阅新闻邮件类似。

开发 :直接使用文档中得demo即可,这里我选用此demo,也可集成AWS的。

需要下载javax.mail.jar,代码中改换的参数换掉。

 

附加我的代码(加了图片的),部分代码为其他引用:

public void CreateMessageIn() throws MessagingException, IOException {Tools tls = new Tools(); //String subject = "Important feedback";// ****************************创建会话***************************************final Properties props = new Properties();String emlDestUp = ldest.toUpperCase(); // if (emlDestUp.contains("@QQ.COM") || emlDestUp.contains("@PIONEER.NET.AU") ) {if (emlDestUp.contains("@QQ.COM")) {props.put("mail.smtp.host", "smtp.mxhichina.com");// 发件人使用发邮件的电子信箱服务器props.put("mail.smtp.auth", "true");props.put("mail.smtp.starttls.enable", "true");props.put("mail.user", "service@****.com");props.put("mail.password", "P***123456");props.put("mail.smtp.port", "25"); } else {props.put("mail.smtp.host", "email-smtp.us-east-1.amazonaws.com");// 发件人使用发邮件的电子信箱服务器props.put("mail.smtp.auth", "true");props.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.port", "25");props.put("mail.user", "AKIAJPEOFR*10*");props.put("mail.password", "AuhmFfe1lMRSVxPpo44ZfQjjPGqyiZsymz*10*");}/** http://blog.csdn.net/u013076997/article/details/53760828?locationNum=14&fps=1* javax.mail发送邮件(带附件)* http://blog.csdn.net/wangxinqn/article/details/1708705* 近日使用javamail 为公司的软件添加了邮件收发功能。遇到了Unsupported record version Unknown-50.49异常。该异常只会在发送邮件的时候产生,而且是应为所有邮箱使用了SSL加密功能。应该是javamail包的问题初步的解决方案是在你的发送类里 加上props.put("mail.smtp.quitwait", "false");将该异常屏蔽调 */props.put("mail.smtp.quitwait", "false");Authenticator atctr = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {String userName = props.getProperty("mail.user");String passWord = props.getProperty("mail.password");return new PasswordAuthentication(userName, passWord); }};Session mailsession = Session.getInstance(props, atctr); // 获得默认的session对象mailsession.setDebug(true);// *****************************构造消息**************************************MimeMessage msg = new MimeMessage(mailsession);InternetAddress from = null;if (lfrom == null ) {Properties pros = new Properties();pros.load(this.getClass().getClassLoader().getResourceAsStream("server.properties")); String fel = "service@paby.com";if (dfg > 0)fel = pros.getProperty("dreamemail");from = new InternetAddress(fel); } elsefrom = new InternetAddress(lfrom);msg.setFrom(from); // 发送者email帐号msg.setRecipient(Message.RecipientType.TO, new InternetAddress(ldest)); // 设置收件人地址并规定其类型if ( Constant.timeUtcFlag ) // true msg.setSentDate(tls.getUtcDateStrNowDate());elsemsg.setSentDate(new Date()); // 设置发信时间 msg.setSubject(ltitle); // 设置主题msg.setText(lcontent);msg.setContent(lcontent, "text/html;charset=UTF-8"); // 设置 正文if ( laddonName != null ) {/*// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件 Multipart multipart = new MimeMultipart(); // 设置邮件的文本内容 BodyPart contentPart = new MimeBodyPart(); contentPart.setText(lcontent);multipart.addBodyPart(contentPart);// 添加附件 BodyPart messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(laddonName); // 添加附件的内容 messageBodyPart.setDataHandler(new DataHandler(source));// 添加附件的标题 // 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码 messageBodyPart.setFileName(MimeUtility.encodeText("Image")); multipart.addBodyPart(messageBodyPart); msg.setContent(multipart); */ // 创建邮件正文 MimeBodyPart text = new MimeBodyPart();text.setContent(lcontent + "<br/><img src='cid:image_id'/>", "text/html;charset=UTF-8");// 创建图片 MimeBodyPart img = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource(laddonName));//图片路径 img.setDataHandler(dh);img.setContentID("image_id"); // 创建图片的一个表示用于显示在邮件中显示 MimeMultipart mm = new MimeMultipart(); mm.addBodyPart(text); mm.addBodyPart(img); mm.setSubType("related");// 设置正文与图片之间的关系 // 图片与正文的 body MimeBodyPart all = new MimeBodyPart(); all.setContent(mm);msg.setContent(mm);}// 保存邮件 msg.saveChanges(); // 发送邮件Transport.send(msg);logger.info("email has sended to " + ldest);}

                ---------------------------------------------欢迎关注公众号(生活不止有代码)-------------------------------------------------------

                                                                      

总结

以上是生活随笔为你收集整理的Java邮件发送-亚马逊Simple EMail Service (SES)作SMTP服务器的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。