当前位置: 首页 > 知识库问答 >
问题:

android使用javamail smtp发送邮件,提供身份验证失败

班景龙
2023-03-14

我正在尝试使用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主机和它的工作。我尝试的用户名域/用户名,用户名,username@company.com。但总是有同样的例外。请帮我修一下。

提前谢谢

我启动了调试,得到了以下日志。它告诉我们不正确的身份验证数据。我确信我的登录名和密码是正确的。有人能帮我输入用户名吗?

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

我尝试添加props.put("mail.imap.auth.plain.disable","true");但是失败了

01-29 17:50:46.958:I/System。out(3898):220家我的公司。服务器名。com ESMTP Exim 4.80#2 Tue,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):调试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):On信号强度更改01-29 17:50:47.220:I/System。out(3898):250家mycompany。服务器名。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-pipelling 01-29 17:50:47.220:I/System。out(3898):250-AUTH普通登录01-2917:50:47.220:I/System。out(3898):250帮助01-29 17:50:47.224:I/System。out(3898):调试SMTP:找到扩展名“SIZE”,arg“52428800”01-29 17:50:47.224:I/System。out(3898):调试SMTP:找到扩展名“8BITMIME”,arg“01-29 17:50:47.224:I/System。out(3898):调试SMTP:找到扩展名“Pipeline”,arg“01-29 17:50:47.228:I/System。out(3898):调试SMTP:找到扩展名“AUTH”,arg“PLAIN LOGIN”01-29 17:50:47.228:I/System。out(3898):调试SMTP:找到扩展名“HELP”,arg“01-29 17:50:47.228:I/System。out(3898):调试SMTP:尝试验证01-29 17:50:47.228:I/System。out(3898):身份验证登录01-29 17:50:47.552:I/System。输出(3898):334 VXNlcm5hbWU6 01-29 17:50:47.552:I/System。out(3898):ZmZoY1xwc3VyYWo=01-29 17:50:48.404:I/StatusBarPolicy(218):On信号强度更改01-29 17:50:49.806:I/System。out(3898):535不正确的身份验证数据**

共有1个答案

侯善
2023-03-14

尝试打开会话调试。也许协议追踪会提供更多线索。

如果您正在使用Exchange 2007,您可能会遇到JavaMail wiki上描述的AUTH=PLAIN bug。

 类似资料:
  • SMTP服务器 ;                  [myserverName] 默认用户电子邮件后缀 ; [myemailId] 使用SMTP身份验证 ; true 用户名称 ;                     [myemailId] 密码 ;                       [mypassword] 使用SSL ;                       假 SMTP

  • 我正在使用javax邮件从我的活动发送邮件。这是我的属性 使用此设置时,javax会给出错误“javax.mail.AuthenticationFailedException”。 我必须关闭谷歌安全从这个链接! 但是我不想关闭安全服务。有什么方法可以使用吗?我想问题是我的属性,但是我不知道。

  • 在Wordfence文档中说: 过滤器“wordfence_ls_require_captcha”可用于在您选择的情况下禁用captcha。这对于包含RESTendpoint的插件可能很有用,这些endpoint具有不需要captcha的身份验证。必要时,您的过滤器应返回false以绕过captcha要求,或者在需要CAPTCH时返回true 如果我尝试通过JWT进行API调用,我会通过电子邮件收

  • 我正在尝试在Spring身份验证服务器(Spring Security)中配置多个身份验证提供程序(主要和次要) 根据“身份验证”方法留档: 返回:包含凭据的完全经过身份验证的对象。如果AuthenticationProvider无法支持对传递的身份验证对象的身份验证,则可能返回null。在这种情况下,将尝试下一个支持提供的身份验证类的AuthenticationProvider。 如果身份验证失

  • 我已经安装了拉威尔护照。 下面是我如何生成授权代码: 以上要求均通过良好。以下是我如何尝试生成访问令牌: 当我执行生成访问令牌的代码时,出现以下错误: {“error”:“invalid_client”,“error_description”:“client authentication failed”,“message”:“client authentication failed”} 你知道这个

  • 情况 我想为我的web应用程序使用Azure B2C身份验证服务。但是,我希望应用程序管理员限制对某些电子邮件或域的访问,例如白名单,如下所示: tom1@abc.com tom2@def.com *@alphabet.com 因此,只有前两封电子邮件和任何以“alphabet.com”结尾的电子邮件才能访问该网站。 问题 我已经实现了所有功能,并且工作正常,但是我正在努力获取经过身份验证的用户的