小组Java
  • Java 邮件发送问题

    2016/12/19 王涛 15 评论

鄙人做了个简单的邮件发送的例子,但是运行的时候一直报身份验证有问题。求教有经验人士的帮助。邮箱的POP以及SMTP服务已经开启了。授权码也有了。但是一直都会报身份验证问题。下面是问题的报错和源代码截图。

package com.etoak.test;

import java.util.Date;
import java.util.Properties;

import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class TestMail {

/**
* 发件人的邮箱和密码
* @param args
*/
private static String myEmailAccount = “邮箱”;
private static String myEmailPassword = “授权码”;
private static String myEmialHost = “smtp.qq.com”;
private static String receiver = “邮箱”;
public static void main(String[] args) throws Exception {
//1.创建参数配置
Properties prop = new Properties();
prop.setProperty(“mail.transport.protocol”,”smtp”);
prop.setProperty(“mail.host”, myEmialHost);
prop.setProperty(“mail.smtp.auth”,”true”);
prop.setProperty(“isSSL”,”true”);
//2.根据配置创建会话,用于和邮件服务器交互
Session session = Session.getDefaultInstance(prop);
session.setDebug(true);
MimeMessage message = createMimeMessage(session,myEmailAccount,receiver);//创建一封邮件
Transport transport = session.getTransport();
transport.connect(myEmailAccount,myEmailPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}

/**
* 创建一份简单邮件
*/
public static MimeMessage createMimeMessage(Session session,String sendMail,String receiveMail) throws Exception{
MimeMessage message = new MimeMessage (session);
message.setFrom(new InternetAddress(sendMail,”某宝王”,”UTF-8″));
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail,”XX用户”,”UTF-8″));
message.setSubject(“年终大庆”,”UTF-8″);
message.setContent(“XX用户你好,今天全场五折起”,”text/html;charset=UTF-8″);
message.setSentDate(new Date());;
message.saveChanges();
return message;
}

}

 

报错信息:

530 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28
Exception in thread “main” javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:306)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:176)
at com.etoak.test.TestMail.main(TestMail.java:33)

 

 

1 收藏


直接登录
最新评论
  • 阿狸先森 java软件攻城师 2016/12/19

    linux环境么

  • SEKI 高级JAVA工程师 2016/12/19

    。。。。。。垃圾邮件。。。。

    • 王涛   2016/12/20

      什么意思

       

      • SEKI 高级JAVA工程师 2016/12/20

        message.setSubject(“年终大庆”,”UTF-8″);
        message.setContent(“XX用户你好,今天全场五折起”,”text/html;charset=UTF-8″);

        这内容,太像垃圾邮件啦。

        跟技术没啥关系。就是看到跟自己邮箱标题随便说一句。

  • 246 程序员 2016/12/21

    腾讯企业邮是有权限认证问题,http://blog.csdn.net/jsjsjs1789/article/details/53352490,看看这个bolg就可以解决了

  • 章小凡 软件研发 02/13

    QQ邮箱  host 好像不是这样   百度下  http://blog.csdn.net/ontheway20/article/details/17964593

     

  • Neoe   02/13

    看错误信息应该是需要加上

    不谢。

  • 你开启了SSL链接,错误信息也是提示你没有使用安全链接机制。使用SSL链接就行了

  • 花开不败 学生 03/20

    身份验证异常
    在用户名和密码都没有问题的情况下,如果代码抛出javax.mail.AuthenticationFailedException异常,先用OutLook测试一下看能否进行正常的收发邮件,有时信箱如果是新注册的话,邮件的服务商默认刚注册的帐号是不能使用pop3的。例如163.com在我进行代码测试时,刚刚注册的帐号是没有权限使用该功能的,所以就会抛出上述的异常。
    还有,要注意from的email地址和Authenticator类中验证的用户名是一致的,要不也会出错.