所需jar包:comment-email.jar mail.jar activation.jar
一、 配置QQ邮箱的IMAP
进入qq电子邮件点击 设置->账户里开启 SMTP 服务(开启IMAP/SMTP服务) 注意:在启用QQ邮箱的14天之后才能开启此服务
开启之后会得到授权码,此授权码要记住或者保存到文本文件当中发送邮件的时候需要作为验证密码使用。
二.使用JavaMail发送一封简单邮件 的示例代码:
public static void main(String[] args) throws Exception{ // 不要使用SimpleEmail,会出现乱码问题 HtmlEmail email = new HtmlEmail(); try { // 这里是SMTP发送服务器的名字:,普通qq号只能是smtp.qq.com ;smtp.exmail.qq.com没测试成功 email.setHostName("smtp.qq.com");
//设置需要鉴权端口 email.setSmtpPort(465);
//开启 SSL 加密 email.setSSLOnConnect(true); // 字符编码集的设置 email.setCharset("utf-8"); // 收件人的邮箱 email.addTo("xxxxx@qq.com"); // 发送人的邮箱 email.setFrom("xxxxx@qq.com", "(发件人名称)"); // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和得到的授权码 email.setAuthentication("xxxxx@qq.com", "授权码"); email.setSubject("下午3:00会议室讨论,请准时参加"); // 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签 email.setMsg("邮件内容"); // 发送 email.send(); System.out.println ( "邮件发送成功!" ); } catch (EmailException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println ( "邮件发送失败!" ); } }
二. 示例代码2:
public static void main2() throws Exception { Properties props = new Properties(); // 开启debug调试 props.setProperty("mail.debug", "true"); // 发送服务器需要身份验证 props.setProperty("mail.smtp.auth", "true"); // 设置邮件服务器主机名 props.setProperty("mail.host", "smtp.qq.com"); // 发送邮件协议名称 props.setProperty("mail.transport.protocol", "smtp"); MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.ssl.socketFactory", sf); Session session = Session.getInstance(props); Message msg = new MimeMessage(session); msg.setSubject("主题"); StringBuilder builder = new StringBuilder(); builder.append("胡子&小猿的博客:"); builder.append("url = " + "http://www.cnblogs.com/hzxy-blog/"); msg.setText(builder.toString()); msg.setFrom(new InternetAddress("**发送人的邮箱地址**
")); Transport transport = session.getTransport(); transport.connect("smtp.qq.com","**发送人的邮箱地址**"
,
"**你的邮箱密码或者授权码**"
); transport.sendMessage(msg, new Address[] { new InternetAddress("**接收人的邮箱地址**"
) }); transport.close(); }