asp.net - “SMTP 服务器需要安全连接或客户端未通过身份验证”
问题描述
无法通过启用 google 访问不太安全的应用程序和两步验证来解决问题
我已启用谷歌访问不太安全的应用程序,但我仍然遇到问题.. 我什至尝试启用两步验证,但它无法正常工作..
Protected Sub sendMail_Click(sender As Object, e As EventArgs) Handles sendMail.Click
Dim mainconn As String = System.Configuration.ConfigurationManager.ConnectionStrings("user_ConnectionString").ConnectionString
Dim con As New SqlConnection(mainconn)
Dim query As String = "Select email, password from user_information where email = @email"
Dim cmd As New SqlCommand
cmd = New SqlCommand(query, con)
cmd.Parameters.AddWithValue("@email", txtBoxEmailSupport.Text.Trim)
con.Open()
Dim sdr As SqlDataReader = cmd.ExecuteReader()
If sdr.Read() Then
Dim email_password As String = sdr("email").ToString.Trim
Dim password_reset As String = sdr("password").ToString.Trim
Dim mm As New MailMessage("jackieyong36@gmail.com", txtBoxEmailSupport.Text.Trim)
mm.Subject = "Your forgotten Password!"
mm.Body = String.Format("Smtp is working, man~~", email_password, password_reset)
mm.IsBodyHtml = True
Dim smtp As New SmtpClient()
smtp.Host = "smtp.gmail.com"
smtp.EnableSsl = True
Dim nc As New NetworkCredential("jackieyong36gmail.com", "12345")
smtp.UseDefaultCredentials = True
smtp.Credentials = nc
smtp.Port = 587
smtp.Send(mm)
lblStatus.Text = "Your password has been sent to " + txtBoxEmailSupport.Text
Else
lblStatus.Text = "This email was not existed!"
End If
解决方案
我已经用 auth 解决了这个问题,这段代码对我有用,从 NuGet 下载 MailKit并添加到你的参考资料中。你只需要启用不太安全的应用程序。
Private Sub SendMail()
Dim message = New MimeMessage()
message.From.Add(New MailboxAddress("Mr. Kako Kak", "yourgmail@gmail.com"))
message.[To].Add(New MailboxAddress("Mrs. Chanandler Bong", "hisgmail@gmail.com"))
message.Subject = "subjectText"
message.Body = New TextPart("plain") With {
.Text = "bodyText"
}
Using client = New SmtpClient()
client.Connect("smtp.gmail.com", 465)
client.AuthenticationMechanisms.Remove("XOAUTH2")
client.Authenticate("yourgmail@gmail.com", "yourgmailpswd")
client.Send(message)
client.Disconnect(True)
End Using
End Sub
推荐阅读
- c# - 从 Excel 导入数据到 SQL Server,不能保存为十进制数据类型
- c - 段错误的原因?
- azure-ad-b2c - 用户从 Azure AD B2C 删除通知或回调?
- python - 如何根据分类变量划分数据框?
- python - 我正在尝试在 python 中读取一个 url,但它给出了一个不完整的读取
- c# - 对象引用未设置为 Unity 对象的实例
- java - 如何使用 Kotlin DSL 创建 Fat JAR?
- python - conda 在前缀路径中将软件包安装到 env
- sql - 如何从 SQL 中的日期/时间字段中删除时间戳?
- vue.js - 如何向 vue.js 中不是父级的另一个组件发出事件?