带有 gmail smtp 的 Microsoft 身份确认电子邮件

问题描述 投票:0回答:1

这似乎让我困惑,我已经在旧应用程序上使用我们机构的电子邮件(位于谷歌套件(工作空间)上)设置了 Identity 2.0。 因此,我们决定使用 gmail smtp 来发送电子邮件,(启用安全性较低的应用程序)在 google 上作为我们需要发送的电子邮件地址。

我注意到 2 因素身份验证电子邮件已正确发送,但所有包含身份

callbackCode
的电子邮件均未发送。 Gmail 正在向发件人电子邮件发送一封邮件,表明该电子邮件被拒绝。

我们改变了方法,删除了链接,只是决定发送链接供用户复制并粘贴到浏览器中。 现在,“忘记密码”功能可以使用,电子邮件确认电子邮件不会在生产中发送,并且电子邮件收件箱或发件箱中没有任何内容可确定错误是什么。它每次在开发环境中都会发送电子邮件确认电子邮件。

我想可能与gmail的关系比与代码的关系更大,所以我在这里没有添加任何代码。 任何指针为什么会这样,以及我们如何开始调试以查看实际发生的情况。

private async Task<bool> SendEmailAsync(string email, string subject, string message, string name = null)
{
    var toName = string.IsNullOrEmpty(name) ? email : name;
    var messageBody = new MimeMessage();
    messageBody.From.Add(new MailboxAddress(_app, _emailSettings.EmailAddress));
    messageBody.To.Add(new MailboxAddress(toName, email));
    messageBody.Subject = subject;
    var messType = StringUtils.ContainsHTMLElements(message) ? "html" : "plain";
    messageBody.Body = new TextPart(messType)
    {
        Text = message
    };
    await SendAsync(messageBody);
    return true;
}

这是sendAsync

private async Task SendAsync(MimeMessage messageBody)
{
    using (var client = new SmtpClient())
    {
        await client.ConnectAsync("[email protected]", 587, MailKit.Security.SecureSocketOptions.Auto);
                
        await client.AuthenticateAsync("[email protected]", "password");

        await client.SendAsync(messageBody);
        await client.DisconnectAsync(true);
    }
}
c# webforms smtp gmail
1个回答
0
投票

这是我的示例中的代码。我认为您忘记了 smtp 服务器,请尝试使用

NetworkCredential
并确保您发送的是
AppsPassword
而不是实际的 gmail 用户密码。

var smtpClient = new SmtpClient("smtp.gmail.com")
        {
            Port = 587,
            Credentials = new NetworkCredential(From , GoogleAppPassword),
            EnableSsl = true,
        };
var mailMessage = new MailMessage
        {
            From = new MailAddress(From),
            Subject = Subject,
            Body = Body,
            IsBodyHtml = true,
        };
mailMessage.To.Add(To);

smtpClient.Send(mailMessage);
© www.soinside.com 2019 - 2024. All rights reserved.