700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java实现163邮箱发送邮件到qq邮箱成功案例

java实现163邮箱发送邮件到qq邮箱成功案例

时间:2020-08-13 02:55:20

相关推荐

java实现163邮箱发送邮件到qq邮箱成功案例

Java|java教程

java 邮件 邮箱

Java-java教程

下载和上传附件、发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相关代码,具体解释可以参考代码中注释:

手机选号 源码,ubuntu中du用法,招聘数据爬虫,android php,laravel 分页seolzw

package test; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.PasswordAuthentication; 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; import com.sun.mail.util.MailSSLSocketFactory; ///** // * // * @author tuzongxun123 // * @Description 邮件发送测试类 // */ public class sendMailTest { public static void main(String[] args) throws Exception { // 配置信息 Properties pro = new Properties(); pro.put("mail.smtp.host", ""); pro.put("mail.smtp.auth", "true"); // SSL加密 MailSSLSocketFactory sf = null; sf = new MailSSLSocketFactory(); // 设置信任所有的主机 sf.setTrustAllHosts(true); pro.put("mail.smtp.ssl.enable", "true"); pro.put("mail.smtp.ssl.socketFactory", sf); // 根据邮件的会话属性构造一个发送邮件的Session,这里需要注意的是用户名那里不能加后缀,否则便不是用户名了 //还需要注意的是,这里的密码不是正常使用邮箱的登陆密码,而是客户端生成的另一个专门的授权码 MailAuthenticator authenticator = new MailAuthenticator("tuzongxun123","客户端授权码"); Session session = Session.getInstance(pro, authenticator); // 根据Session 构建邮件信息 Message message = new MimeMessage(session); // 创建邮件发送者地址 Address from = new InternetAddress("tuzongxun123@"); // 设置邮件消息的发送者 message.setFrom(from); // 验证收件人邮箱地址 List toAddressList = new ArrayList(); toAddressList.add("1160569243@"); StringBuffer buffer = new StringBuffer(); if (!toAddressList.isEmpty()) { String regEx = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern p = pile(regEx); for (int i = 0; i < toAddressList.size(); i++) {Matcher match = p.matcher(toAddressList.get(i));if (match.matches()) {buffer.append(toAddressList.get(i));if (i < toAddressList.size() - 1) { buffer.append(",");}} } } String toAddress = buffer.toString(); if (!toAddress.isEmpty()) { // 创建邮件的接收者地址 Address[] to = InternetAddress.parse(toAddress); // 设置邮件接收人地址 message.setRecipients(Message.RecipientType.TO, to); // 邮件主题 // message.setSubject("java邮件测试"); message.setSubject("为什么错了"); // 邮件容器 MimeMultipart mimeMultiPart = new MimeMultipart(); // 设置HTML BodyPart bodyPart = new MimeBodyPart(); // 邮件内容 // String htmlText = "java邮件测试111"; String htmlText = "为什么错了"; bodyPart.setContent(htmlText, "text/html;charset=utf-8"); mimeMultiPart.addBodyPart(bodyPart); // 添加附件 List fileAddressList = new ArrayList(); fileAddressList.add("C:\\Users\\tuzongxun123\\Desktop\\新建 Microsoft Office Word 文档.docx"); if (fileAddressList != null) {BodyPart attchPart = null;for (int i = 0; i < fileAddressList.size(); i++) {if (!fileAddressList.get(i).isEmpty()) { attchPart = new MimeBodyPart(); // 附件数据源 DataSource source = new FileDataSource( fileAddressList.get(i)); // 将附件数据源添加到邮件体 attchPart.setDataHandler(new DataHandler(source)); // 设置附件名称为原文件名 attchPart.setFileName(MimeUtility.encodeText(source .getName())); mimeMultiPart.addBodyPart(attchPart);}} } message.setContent(mimeMultiPart); message.setSentDate(new Date()); // 保存邮件 message.saveChanges(); // 发送邮件 Transport.send(message); } } } class MailAuthenticator extends Authenticator { /** * 用户名 */ private String username; /** * 密码 */ private String password; /** * 创建一个新的实例 MailAuthenticator. * * @param username * @param password */ public MailAuthenticator(String username, String password) { this.username = username; this.password = password; } public String getPassword() { return password; } @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } public String getUsername() { return username; } public void setPassword(String password) { this.password = password; } public void setUsername(String username) { this.username = username; } }

注:我有个同事使用我这个代码更换为他的账号和客户端授权码后,一运行就报错,然后重置了一下邮箱的客户端授权码后,错误便消失了。

教务系统项目源码,ubuntu没有挂载光盘,tomcat端口在哪个配置文件,爬虫文字图形验证,php系统集成快逸报表,seo快速上升lzw

apriori 源码,vscode引入vetur,ubuntu klyin,tomcat 配置主页,sqlite修改聊天记录,wordpress图片插件放大,前端框架冲突了怎么办,爬虫一般实现步骤,php 正则 截取,seo推广什么价,企业网站框架,网页游戏经营类源码,模板网站下载lzw

更多java实现163邮箱发送邮件到qq邮箱成功案例相关文章请关注PHP中文网!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。