抛出的异常:
javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:264)
at javax.mail.Service.connect(Service.java:134)
at javax.mail.Service.connect(Service.java:86)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at com.kevin.MailExample.main(MailExample.java:48)
代码如下:
package com.kevin;import java.util.Properties;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;public class MailExample {
public static void main(String[] args) {
try {
String username = "[email protected]";
String password = "*****";
String smtp_server = "smtp.163.com";
String from_mail_address = username;
String to_mail_address = "[email protected]"; Authenticator auth = new PopupAuthenticator(username, password); Properties mailProps = new Properties();
mailProps.put("mail.smtp.auth", "true"); mailProps.put("username", username); mailProps.put("password", password); mailProps.put("mail.smtp.host", smtp_server);
Session mailSession = Session.getDefaultInstance(mailProps, auth);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from_mail_address));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(to_mail_address));
message.setSubject("Mail Test"); MimeMultipart multi = new MimeMultipart();
BodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText("电子邮件测试内容!");
multi.addBodyPart(textBodyPart);
message.setContent(multi);
message.saveChanges();
Transport.send(message);
}
catch (Exception ex) {
System.err.println("邮件发送失败的原因是:" + ex.getMessage());
System.err.println("具体错误原因:");
ex.printStackTrace(System.err);
}
}}class PopupAuthenticator
extends Authenticator {
private String username;
private String password;
public PopupAuthenticator(String username, String password) {
this.username = username;
this.password = password;
} public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.username, this.password);
}
}
javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:264)
at javax.mail.Service.connect(Service.java:134)
at javax.mail.Service.connect(Service.java:86)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at com.kevin.MailExample.main(MailExample.java:48)
代码如下:
package com.kevin;import java.util.Properties;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;public class MailExample {
public static void main(String[] args) {
try {
String username = "[email protected]";
String password = "*****";
String smtp_server = "smtp.163.com";
String from_mail_address = username;
String to_mail_address = "[email protected]"; Authenticator auth = new PopupAuthenticator(username, password); Properties mailProps = new Properties();
mailProps.put("mail.smtp.auth", "true"); mailProps.put("username", username); mailProps.put("password", password); mailProps.put("mail.smtp.host", smtp_server);
Session mailSession = Session.getDefaultInstance(mailProps, auth);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from_mail_address));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(to_mail_address));
message.setSubject("Mail Test"); MimeMultipart multi = new MimeMultipart();
BodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText("电子邮件测试内容!");
multi.addBodyPart(textBodyPart);
message.setContent(multi);
message.saveChanges();
Transport.send(message);
}
catch (Exception ex) {
System.err.println("邮件发送失败的原因是:" + ex.getMessage());
System.err.println("具体错误原因:");
ex.printStackTrace(System.err);
}
}}class PopupAuthenticator
extends Authenticator {
private String username;
private String password;
public PopupAuthenticator(String username, String password) {
this.username = username;
this.password = password;
} public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.username, this.password);
}
}
改过来了,还是报那个错
谢谢你的回答;
请问能不能帖一份你调通的用javamail发送邮件的代码,我从网上搜到的代码基本上都报这个错。
要不你 加一句 mailSession.setDebug(true); 看看 debug
http://blog.csdn.net/sunyujia/archive/2008/06/10/2528696.aspx告诉你一件很重要的事情,不是所以的邮件服务商都让你用程序发邮件的
163的用户必须积分够才行,呵呵
发邮件使用smtp去
你用的邮件网站仔细看说明就知道支不支持了
foxmail和outlook可以发邮件的话就证明你的帐户可以通过写程序发邮件。
加了mailSession.setDebug(true); 后调试的结果如下:
DEBUG: setDebug: JavaMail version 1.3.2
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.163.com", port 25, isSSL false
220 163.com Anti-spam GT for Coremail System (163com[071018])
DEBUG SMTP: connected to host "smtp.163.com", port: 25
EHLO sp8sz7lj9pybblr
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 dXNlcm5hbWU6
aGFudXRhbw==
334 UGFzc3dvcmQ6
c29waGlh
邮件发送失败的原因是:null
具体错误原因:
javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:264)
at javax.mail.Service.connect(Service.java:134)
at javax.mail.Service.connect(Service.java:86)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at com.kevin.MailExample.main(MailExample.java:49)
550 用户被锁定
我的贴子看没,很有可能你的积分根本就不够,不能smtp发邮件。为何新申请的邮箱不能用客户端?字体: 小 中 大
目前免费邮箱新注册的用户不支持直接开通smtp、pop3的服务,之前已开通客户端功能的老用户不受影响。如果需要使用该功能,您可以选择 VIP邮箱,另外我们也会陆续通过“积分活动”、“邮箱会员”等方式也会向有需要的用户提供该项服务,敬请关注。同时感谢您使用我们的产品! http://help.163.com/07/0524/10/3F8K8I6V007525G0.html