java mail 异常javax.mail.AuthenticationFailedException

Alanc_ 2015-10-30 09:33:42
测试类:
public class TestSendEmail {
public static void main(String[] args){
//这个类主要是设置邮件
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost("smtp.163.com");
mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
mailInfo.setUserName("chendonghai@fndsoft.cn");
mailInfo.setPasssword("*******************");
mailInfo.setFromAddress("chendonghai@fndsoft.cn");
mailInfo.setToAddress("hepeihui@fndsoft.cn");
mailInfo.setSubject("验证用户,发送验证码");
mailInfo.setContent("woshichendonghai");
//这个类主要来发送邮件
SimpleMailSender sms = new SimpleMailSender();
sms.sendTextMail(mailInfo);
}
}
-------------------------------------------------------------------------------------------------------------------------------
邮件信息类:
上主要代码,其他都是一些内容,主题啥的
/**
* 配置邮件的会话属性
* */
public Properties getProperties(){
Properties pro = new Properties();
pro.put("mail.smtp.host", this.mailServerHost);
pro.put("mail.smtp.port", this.mailServerPort);
//pro.put("mail.smtp.starttls.enable","true");
pro.put("mail.smtp.auth", "true");
//pro.put("mail.smtp.auth", validate?"true":"false");
return pro;
}
-------------------------------------------------------------------------------------------------------------------------------
验证认证类:
public class MyAuthenticator extends Authenticator{

String userName = null;
String password = null;

public MyAuthenticator() {
}

public MyAuthenticator(String password, String userName) {
this.password = password;
this.userName = userName;
}

protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(userName, password);
}
}
-------------------------------------------------------------------------------------------------------------------------------
邮件发送类:
public class SimpleMailSender {
public boolean sendTextMail(MailSenderInfo mailInfo){
//判断是否需要验证身份
Properties pro = mailInfo.getProperties();
//需要身份验证,则创建一个密码验证器(认证类)
MyAuthenticator authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPasssword());
//根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getInstance(pro, authenticator);
sendMailSession.setDebug(true);

try {
//根据session创建一个邮件消息对象
Message mailMessage = new MimeMessage(sendMailSession);
//创建发送人的地址
Address from = new InternetAddress(mailInfo.getFromAddress());
//设置邮件的发送者到邮件消息对象
mailMessage.setFrom(from);
//创建接收人的地址,并设置到邮件消息对象中
Address to = new InternetAddress(mailInfo.getToAddress());
mailMessage.setRecipient(Message.RecipientType.TO, to);
//设置邮件对象的主题
mailMessage.setSubject(mailInfo.getSubject());
//设置邮件的发送时间
mailMessage.setSentDate(new Date());
//设置邮件的正文
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
//发送邮件
/*Transport transport = sendMailSession.getTransport();
transport.connect("smpt.163.com", mailInfo.getUserName(), mailInfo.getPasssword());
transport.sendMessage(mailMessage, mailMessage.getAllRecipients());*/
Transport.send(mailMessage);
return true;
}catch (MessagingException ex){
ex.printStackTrace();
}
return false;
}

}
-------------------------------------------------------
其中查了原因,网上说了很多,包括新账号没有加认证等,我这里是企业邮箱,不知道问题出在哪,求解救。
...全文
168 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alanc_ 2015-10-30
  • 打赏
  • 举报
回复
已解决,原因是163企业邮箱服务器地址居然是这个smtp.qiye.163.com
Alanc_ 2015-10-30
  • 打赏
  • 举报
回复
DEBUG: setDebug: JavaMail version 1.4.1ea-SNAPSHOT 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[20141201]) DEBUG SMTP: connected to host "smtp.163.com", port: 25 这是打出的信息
javaMail的详细文档,都有以下多有类的详细信息: ACL Address AddressException AddressStringTerm AddressTerm AndTerm AuthenticationFailedException Authenticator BodyPart BodyTerm ByteArrayDataSource ComparisonTerm ConnectionAdapter ConnectionEvent ConnectionListener ContentDisposition ContentType DateTerm DeliveryStatus DispositionNotification FetchProfile FetchProfile.Item Flags Flags.Flag FlagTerm Folder FolderAdapter FolderClosedException FolderEvent FolderListener FolderNotFoundException FromStringTerm FromTerm Header HeaderTerm HeaderTokenizer HeaderTokenizer.Token IllegalWriteException IMAPFolder IMAPFolder.FetchProfileItem IMAPFolder.ProtocolCommand IMAPMessage IMAPSSLStore IMAPStore IntegerComparisonTerm InternetAddress InternetHeaders InternetHeaders.InternetHeader MailDateFormat MailEvent MailHandler MailSSLSocketFactory Message Message.RecipientType MessageAware MessageChangedEvent MessageChangedListener MessageContext MessageCountAdapter MessageCountEvent MessageCountListener MessageHeaders MessageIDTerm MessageNumberTerm MessageRemovedException MessagingException MethodNotSupportedException MimeBodyPart MimeMessage MimeMessage.RecipientType MimeMultipart MimePart MimePartDataSource MimeUtility Multipart MultipartDataSource MultipartReport NewsAddress NoSuchProviderException NotTerm OrTerm ParameterList ParseException Part PasswordAuthentication POP3Folder POP3Message POP3SSLStore POP3Store PreencodedMimeBodyPart Provider Provider.Type Quota Quota.Resource QuotaAwareStore ReadOnlyFolderException ReceivedDateTerm RecipientStringTerm RecipientTerm Report Rights Rights.Right SearchException SearchTerm SendFailedException SentDateTerm Service Session SharedByteArrayInputStream SharedFileInputStream SharedInputStream SizeTerm SMTPAddressFailedException SMTPAddressSucceededException SMTPMessage SMTPSendFailedException SMTPSSLTransport SMTPTransport Store StoreClosedException StoreEvent StoreListener StringTerm SubjectTerm Transport TransportAdapter TransportEvent TransportListener UIDFolder UIDFolder.FetchProfileItem URLName

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧