java通过SMTP发送QQ邮件的完全步骤
来源:互联网 发布:sql建立学生表 编辑:程序博客网 时间:2024/06/06 02:09
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import java.util.Calendar;import java.util.Properties;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.Message.RecipientType;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/** * @version V1.0 * @Description: 发送邮件的工具类 * @Modified By:Ming Created in 16:51 2017/2/6 */public class SendEmail { private static final Logger logger = LogManager.getLogger(SendEmail.class); private final static String smtpHost = "smtp.qq.com";//配置Email session对象 private final static String messageType = "text/html;charset=UTF-8";//相应内容类型,编码类型 private final static String subject = "iYo (社联网) 密码修改";//主题 private final static String fromEmail = "272194539@qq.com";//发送邮件的邮箱 private final static String password = "xxxxxxxxxxxxxxxx";//密码(口令) @SuppressWarnings("static-access") public boolean sendMessage(String to, int id) { try { String messageText = appendString(id); //第一步:配置javax.mail.Session对象 Properties props = new Properties(); // 创建Properties 类用于记录邮箱的一些属性 props.put("mail.smtp.host", smtpHost); //此处填写SMTP服务器 props.put("mail.smtp.starttls.enable", "true");//使用 STARTTLS安全连接 props.put("mail.smtp.port", "25"); //google使用465或587端口 props.put("mail.smtp.auth", "true"); // 表示SMTP发送邮件,必须进行身份验证 props.put("mail.debug", "true"); Session mailSession = Session.getInstance(props, new MyAuthenticator(fromEmail, password));//此处填写你的账号和口令(16位口令) //第二步:编写消息 InternetAddress fromAddress = new InternetAddress(fromEmail);// 设置发件人的邮箱 InternetAddress toAddress = new InternetAddress(to); // 设置收件人的邮箱 MimeMessage message = new MimeMessage(mailSession); message.setFrom(fromAddress); message.addRecipient(RecipientType.TO, toAddress); message.setSentDate(Calendar.getInstance().getTime()); message.setSubject(subject); // 设置邮件标题 message.setContent(messageText, messageType);// 设置邮件的内容体 // 第三步:发送消息 Transport transport = mailSession.getTransport("smtp"); transport.connect(smtpHost, fromEmail, password); transport.send(message, message.getRecipients(RecipientType.TO)); // 发送邮件啦 return true; } catch (MessagingException e) { e.printStackTrace(); logger.error("邮件发送错误" + e.getMessage()); return false; } catch (Exception e) { logger.error("邮件发送错误" + e.getMessage()); return false; } } /** * @Author: Ming * @param: id 用户id * @Description: 添加发送的短信的信息 * @Date: 17:12 2017/2/6 */ public static String appendString(int id) { int i; String t = " "; String messageText = ""; for (i = 0; i < 4; i++) messageText += t; messageText += "xxxxxxxxx~<br/>"; for (i = 0; i < 12; i++) messageText += t; messageText += "没关系,xxxxxxxxx<br/>"; for (i = 0; i < 20; i++) messageText += t; messageText += "工作室地点:xxxxxxxxx~<br/><br/>"; for (i = 0; i < 28; i++) messageText += t; messageText += "请点击:http://xxxxxxxxx"; return messageText; }}
import javax.mail.Authenticator;import javax.mail.PasswordAuthentication;/** * @version V1.0 * @Description: 构建授权信息,用于进行SMTP进行身份验证 * @Modified By:Ming Created in 10:22 2017/2/7 */class MyAuthenticator extends Authenticator { private String userName=""; private String password=""; public MyAuthenticator(String userName,String password){ this.userName=userName; this.password=password; } protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(userName, password); }}
注意:
如果出现这个错误:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 这个是jdk导致的,jdk里面有一个jce的包,安全性机制导致的访问https会报错,官网上有替代的jar包,换掉就好了目录 %JAVA_HOME%\jre\lib\security里的local_policy.jar,US_export_policy.jarJDK7 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.htmlJDK8 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
借鉴:
http://www.cnblogs.com/1995hxt/p/6185399.html
至此,邮件就应该能成功发出去啦。
本文是日常开发的随手记录,如有问题,请博内留言以帮助我改正和完善,一起努力,一起学习,一起进步!如果觉得有帮助,记得赞一个哟。
0 0
- java通过SMTP发送QQ邮件的完全步骤
- java通过SMTP发送QQ邮件的完全步骤
- java通过SMTP发送QQ邮件的完全步骤
- java通过SMTP发送QQ邮件的完全步骤
- java通过SMTP发送QQ邮件的完全步骤
- java通过smtp发送qq邮件详细步骤
- java通过SMTP发送QQ邮件(参考龙果学院)
- php使用smtp服务发送邮件 第三开启QQ邮箱开启SMTP服务的步骤
- 通过SMTP发送邮件
- 通过smtp发送邮件
- java发送邮件(javaMail通过SMTP发送邮件)
- 使用SMTP协议,通过QQ邮箱发送邮件
- php通过socket编程,以SMTP将邮件发送到指定的QQ邮箱里面。
- Python SMTP发送QQ邮件
- PYTHON smtp 发送qq邮件
- Java SMTP发送邮件
- java smtp发送邮件
- java spring 开启SMTP服务发送QQ邮件
- java,jsp页面添加提示图以及提示音乐
- 第六章 访问权限控制
- 工作队列(系统工作队列和自定义工作队列使用区别) tasklet
- IO流_递归输出指定目录下所有的java文件的绝对路径案例
- 放在模型窝喷里面的无极变速
- java通过SMTP发送QQ邮件的完全步骤
- C++ 标识符作用域以及对象生存期
- LNMP搭建
- NodeJs模块实例02_buffer、fs和fsdir
- php给日期添加一段时间
- java零碎知识点整理
- android之interpolator的用法详解
- Spring MVC的多视图解析器配置及与Freemarker的集成
- 移动距离