android使用javamail smtp发送邮件给authenticationfailure

时间:2013-01-29 10:40:41

标签: android smtp javamail

我正在尝试使用javamail和smtp发送邮件。当我从我的Gmail地址发送邮件时,它对我有用。我更改了相同的代码以从我的交换帐户发送,但它无法正常工作。我收到身份验证失败例外。

代码

public class GmailSender extends javax.mail.Authenticator {   
private String mailhost = "smtp.company.com";   
private String user;   
private String password;   
private Session session;   

static {   
    Security.addProvider(new JSSEProvider());   
}  

public GmailSender(String user, String password) {   
    this.user = user;   
    this.password = password;   

    Properties props = new Properties();   
    props.setProperty("mail.transport.protocol", "smtp");   
    props.setProperty("mail.host", mailhost);   
    props.put("mail.smtp.auth", "true");   
    props.put("mail.smtp.port", "465");   
    props.put("mail.smtp.socketFactory.port", "465");   
    props.put("mail.smtp.socketFactory.class",   
            "com.example.javamailtestpreetha.AlwaysTrustSSLContextFactory");   
    props.put("mail.smtp.socketFactory.fallback", "false");   
    props.setProperty("mail.smtp.quitwait", "false");   

     session = Session.getInstance(props, new GMailAuthenticator(user, password));
   // session = Session.getDefaultInstance(props, this);   
}   

我尝试使用默认端口,即25,那时我收到错误指示错误的端口号。所以我假设端口号是正确的。我试过ping主机及其工作。我尝试过的用户名domain/username, username, username@company.com。但总是得到同样的例外。请帮我解决这个问题。

提前致谢

我设置调试并得到以下日志。它告诉不正确的身份验证数据。我确定我的登录名和密码是正确的。谁能帮助我如何输入用户名?

username还是domain\usernamedomain/username还是username@mycompanyaddress.com还是其他什么?我怀疑这可能是一个问题。

我尝试添加props.put("mail.imap.auth.plain.disable", "true");但未能使用相同的错误


  

01-29 17:50:46.958:I / System.out(3898):220-mycompany.servername.com   ESMTP Exim 4.80#2星期二,2013年1月29日16:50:51 +0300 01-29   17:50:46.958:I / System.out(3898):220 - 我们不授权使用   这个系统运输不请自来,01-29 17:50:46.958:   I / System.out(3898):220和/或批量电子邮件。 01-29 17:50:46.962:   I / System.out(3898):DEBUG SMTP:连接到主机   “smtp.mail.mycompany.com”,端口:465 01-29 17:50:46.962:   I / System.out(3898):EHLO localhost 01-29 17:50:46.989:   I / StatusBarPolicy(218):onSignalStrengthsChanged 01-29 17:50:47.220:   I / System.out(3898):250-mycompany.servername.com Hello localhost   [80.227.5.70] 01-29 17:50:47.220:I / System.out(3898):250-SIZE   52428800 01-29 17:50:47.220:I / System.out(3898):250-8BITMIME 01-29   17:50:47.220:I / System.out(3898):250-PIPELINING 01-29 17:50:47.220:   I / System.out(3898):250-AUTH PLAIN LOGIN 01-29 17:50:47.220:   I / System.out(3898):250 HELP 01-29 17:50:47.224:I / System.out(3898):   DEBUG SMTP:找到扩展名“SIZE”,arg“52428800”01-29 17:50:47.224:   I / System.out(3898):DEBUG SMTP:找到扩展名“8BITMIME”,arg“”   01-29 17:50:47.224:I / System.out(3898):DEBUG SMTP:找到扩展名   “PIPELINING”,arg“”01-29 17:50:47.228:I / System.out(3898):DEBUG   SMTP:找到扩展名“AUTH”,arg“PLAIN LOGIN”01-29 17:50:47.228:   I / System.out(3898):DEBUG SMTP:找到扩展名“HELP”,arg“”01-29   17:50:47.228:I / System.out(3898):DEBUG SMTP:尝试进行身份验证   01-29 17:50:47.228:I / System.out(3898):AUTH LOGIN 01-29 17:50:47.552:   I / System.out(3898):334 VXNlcm5hbWU6 01-29 17:50:47.552:   I / System.out(3898):ZmZoY1xwc3VyYWo = 01-29 17:50:48.404:   I / StatusBarPolicy(218):onSignalStrengthsChanged 01-29 17:50:49.806:   I / System.out(3898):535验证数据不正确**

1 个答案:

答案 0 :(得分:0)

尝试启用session debugging。也许协议跟踪将提供更多线索。

如果您使用的是Exchange 2007,则可能会遇到JavaMail wiki中描述的AUTH = PLAIN错误。