JavaMail 邮件发送之使用qq邮箱

Posted 胡子&小猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaMail 邮件发送之使用qq邮箱相关的知识,希望对你有一定的参考价值。

   所需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();
      }

 

以上是关于JavaMail 邮件发送之使用qq邮箱的主要内容,如果未能解决你的问题,请参考以下文章

JavaMail实践--实现邮件发送

使用javamail发送邮件03

码javaMail+spring+qq邮箱发送邮件

关于JavaMail实现QQ邮箱发送邮件的简单实现1

javaMail操作QQ邮箱发送邮箱 Demo

Java + 腾讯企业邮箱 + javamail + SSL 发送邮件