gpt4 book ai didi

javax 身份 validator 引用相同的电子邮件地址

转载 作者:行者123 更新时间:2023-11-29 09:00:09 34 4
gpt4 key购买 nike

这是我用来创建 session 以发送电子邮件的代码:

props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.EnableSSL.enable","true");
logger.trace("1. emailFromAddress: " + emailFromAddress);
session = Session.getDefaultInstance(props,new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
logger.trace("2. emailFromAddress + " pass: " + password);
return new PasswordAuthentication(emailFromAddress, password);
}
});

然后我尝试输入 emailFromAddress = "abc@yahoo.com"及其密码。我可以验证地址并成功发送电子邮件,并且

1. emailFromAddress: abc@yahoo.com
2. emailFromAddress: abc@yahoo.com pass: *****

我尝试从不同的 emailFromAddress = "xyz@gmail.com"发送 --> 这次发送失败,日志打印输出为:

1. emailFromAddress: xyz@gmail.com --> WHICH IS CORRECT
2. emailFromAddress: abc@yahoo.com pass: ***** --> WHICH STILL REFER TO THE OLD ACCOUNT

session authenticator是否有缓存?

最佳答案

存在某种缓存:您已经在示例中创建了一次Authenticator,并将其设置在默认 session 中。由于该对象永远存在(或者至少直到您的 JVM 终止),它在每次调用时都会以相同的方式运行。

也许你可以使用 getDefaultUserName()Authenticator 提供用户名?

另一种选择可能是为您发送的每封邮件重新配置一个新的 Authenticator。因此,您可以在每次尝试时提供正确的用户名。

关于javax 身份 validator 引用相同的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17963295/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com