【问题标题】:How sendgrid work without email password?sendgrid 如何在没有电子邮件密码的情况下工作?
【发布时间】:2019-08-17 21:07:29
【问题描述】:

我用这个教程Microsoft Email Configuration for .net Core

一切正常,我想知道。在传统的 smtp 设置中,我们将密码与电子邮件一起指定,为什么 SendGrid 系统不需要电子邮件密码?

传统的 smtp 设置我们使用电子邮件输入密码,如下所示。

var smtpClient = new SmtpClient
{
    Host = "smtp.gmail.com", // set your SMTP server name here
    Port = 587, // Port 
    EnableSsl = true,
    Credentials = new NetworkCredential("from@gmail.com", "password")
};

但是我没看懂这个教程 SendGrid 不想要密码只想要邮件地址。

var client = new SendGridClient(apiKey);
var msg = new SendGridMessage()
{
   From = new EmailAddress("Joe@contoso.com", "Joe Smith"),
   Subject = subject,
   PlainTextContent = message,
   HtmlContent = message
};
msg.AddTo(new EmailAddress(email));

另一个问题, 如果我更改了电子邮件名称(“Joe@contoso.com”)并发送电子邮件,则消息由 Joe 发送。如果我将电子邮件地址更改为 microsoft,它会代表 microsoft 发送电子邮件,为什么?

From = new EmailAddress("Joe@contoso.com", "Joe Smith"),

From = new EmailAddress("Joe@microsoft.com", "Microsoft"),

好的,我知道 SendGridKey 存储 SendGrid Api 密钥,但“SendGridUser”有什么作用?

public class AuthMessageSenderOptions
{
    public string SendGridUser { get; set; }
    public string SendGridKey { get; set; }
}

谢谢。

【问题讨论】:

    标签: asp.net-core .net-core smtp sendgrid


    【解决方案1】:

    您用来连接的 API 密钥对您来说是唯一的。这就是为什么它应该保密。 Sendgrid 通过 API 密钥而不是电子邮件/密码组合来识别您。

    【讨论】:

    • 但这不是安全问题吗?输入我想要的电子邮件地址后,我不会代表那个人发送电子邮件吗?
    • 如果您使用 API 密钥连接到 sendgrid,那么所有发送的电子邮件都与您的 sendgrid 帐户相关联。您可以发送电子邮件,将发件人指定为任何人,但邮件服务通常会按照“此电子邮件似乎并非来自发件人声称的人”的行来创建消息。该电子邮件将通过 sendgrid(和您的 sendgrid 帐户)发送,而不是您正在使用其电子邮件的人员的服务。
    • 好吧,“SendGridUser”是做什么的?在这个示例代码上。
    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 2020-08-22
    • 2014-01-10
    • 2011-02-14
    • 1970-01-01
    • 2016-01-28
    • 2011-08-01
    • 2015-11-09
    相关资源
    最近更新 更多