我已按照快速入门:如何创建使用 SMTP 发送电子邮件的身份验证凭据
中的步骤进行操作我尝试发送电子邮件,但身份验证不起作用。我试过:
代码:
package com.zenmo
import jakarta.mail.Authenticator
import jakarta.mail.PasswordAuthentication
import jakarta.mail.*
import java.util.*
fun main() {
val prop: Properties = Properties()
prop.put("mail.smtp.auth", true)
prop.put("mail.smtp.starttls.enable", "true")
prop.put("mail.smtp.host", "smtp.azurecomm.net")
prop.put("mail.smtp.port", "587")
prop.put("mail.smtp.ssl.trust", "smtp.azurecomm.net")
val session = Session.getInstance(prop, object : Authenticator() {
override fun getPasswordAuthentication() = PasswordAuthentication(
"outgoing-mail.c8d8ffe4-1ff2-4b5b-a6e5-391eac5e1238.1d9c9a28-bfa5-49e1-b0b5-08e4041f77b1",
"R4S***************************"
)
})
session.debug = true
val smtpTransport = session.getTransport("smtp")
smtpTransport.connect()
smtpTransport.close()
}
调试输出:
DEBUG: setDebug: Jakarta Mail version 2.1.1
DEBUG: getProvider() returning jakarta.mail.Provider[TRANSPORT,smtp,org.eclipse.angus.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: need username and password for authentication
DEBUG SMTP: protocolConnect returning false, host=smtp.azurecomm.net, user=erik, password=<null>
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.azurecomm.net", port 587, isSSL false
220 ic3-transport-smtp-acs-deployment-54b7c4d9cd-m6ghd Microsoft ESMTP MAIL Service ready at Fri, 26 Jan 2024 15:15:55 +0000 (08DBFCDFC373B98E)
DEBUG SMTP: connected to host "smtp.azurecomm.net", port: 587
EHLO legion5pro
250-ic3-transport-smtp-acs-deployment-54b7c4d9cd-m6ghd Hello [89.255.15.206]
250-SIZE 10485760
250 STARTTLS
DEBUG SMTP: Found extension "SIZE", arg "10485760"
DEBUG SMTP: Found extension "STARTTLS", arg ""
STARTTLS
220 2.0.0 SMTP server ready
EHLO legion5pro
250-ic3-transport-smtp-acs-deployment-54b7c4d9cd-m6ghd Hello [89.255.15.206]
250-SIZE 10485760
250 AUTH LOGIN
DEBUG SMTP: Found extension "SIZE", arg "10485760"
DEBUG SMTP: Found extension "AUTH", arg "LOGIN"
DEBUG SMTP: protocolConnect login, host=smtp.azurecomm.net, user=outgoing-mail.c8d8ffe4-1ff2-4b5b-a6e5-391eac5e1238.1d9c9a28-bfa5-49e1-b0b5-08e4041f77b1, password=<non-null>
DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM XOAUTH2
DEBUG SMTP: Using mechanism LOGIN
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN failed
问题是我没有创建 Azure 通信服务资源,仅创建了 Azure 通信电子邮件资源。