从Azure发送电子邮件

use*_*596 51 email azure

希望有人能提供帮助.我想从我的Azure帐户发送电子邮件.我的域名配置为与Azure一起使用.

我无法在网上轻松找到如何从Azure帐户发送电子邮件.有一些提到SendGrid,但似乎我的帐户不支持它.

有人可以指导我如何从Azure托管的网站发送电子邮件?

Dav*_*isk 53

我知道这是一篇旧帖子,但我刚刚注册了Azure,我每月通过SendGrid免费获得25,000封电子邮件.这些说明非常好,我在几分钟内启动并运行:

如何使用SendGrid与Azure发送电子邮件

Azure客户每月可以解锁25,000封免费电子邮件.

  • 我不推荐SendGrid.设置帐户需要数天时间.SendGrid不会验证我们的DNS记录.支持只在重复请求后计算出来,并建议禁用我们帐户的默认功能以绕过问题.同样的故事3个月之后,由于与Azure的不可靠集成,我们不得不迁移到一个单独的帐户.此外,.net API在许多方面令人困惑并且缺乏透明度.最后,今天是第3天我们的所有电子邮件都被推迟,因为"我们的基础架构发生了变化,可能会限制您的某些电子邮件".我们完全陷入困境! (11认同)
  • @BernardV,我同意,从"Azure"创建帐户对我来说也不是一次顺利的体验.然而,我使用`SendGrid API`和`Azure Scheduler Job`,它对我来说非常有用. (2认同)

vip*_*naz 12

从第三方发送SMTP不受Azure限制或特定于Azure.使用System.Net.Mail,创建邮件,配置SMTP客户端,发送电子邮件:

// create the message
var msg = new MailMessage();
msg.From = new MailAddress("info@YourWebSiteDomain.com"); 
msg.To.Add(strTo); 
msg.Subject = strSubject; 
msg.IsBodyHtml = true; 
msg.Body = strMessage;

// configure the smtp server
var smtp = new SmtpClient("YourSMTPServer"); 
var = new System.Net.NetworkCredential("YourSMTPServerUserName", "YourSMTPServerPassword");

// send the message
smtp.Send(msg); 
Run Code Online (Sandbox Code Playgroud)

  • 正确 - Azure未启用SMTP.您必须使用3方发送.接收取决于你.您可以通过您设置的任何域电子邮件服务接收电子邮件 - 再次不涉及Azure.您必须设置DNS MX记录才能处理通过GMail等提供商接收电子邮件. (3认同)

joh*_*air 10

我永远不会推荐 SendGrid。我接受了他们的免费帐户优惠,但从来没有发送过一封电子邮件——都被屏蔽了——我花了几天时间试图解决它。当我询问他们为什么被屏蔽时,他们告诉我免费帐户共享一个 IP 地址,如果任何帐户通过发送垃圾邮件来滥用该 ip - 那么共享 IP 地址上的每个人都会被阻止 - 完全没用。此外,如果您使用它们 - 不要将您的电子邮件密钥存储在 git 公共存储库中,因为任何人都可以从那里读取密钥(使用爬虫)并使用您的收费帐户发送大量电子邮件。

我一直在 Azure 网站上可靠使用的免费电子邮件服务是使用我的 Gmail(Google 邮件)帐户。该帐户可以选择将其与应用程序一起使用 - 一旦启用该选项,就可以从您的 azure 网站发送电子邮件。将示例发送代码粘贴为要使用的端口 (587) 并不明显。

  public static void SendMail(MailMessage Message)
    {
        SmtpClient client = new SmtpClient();
        client.Host = EnvironmentSecret.Instance.SmtpHost; // smtp.googlemail.com
        client.Port = 587;
        client.UseDefaultCredentials = false;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.EnableSsl = true;
        client.Credentials = new NetworkCredential(
            EnvironmentSecret.Instance.NetworkCredentialUserName,
            EnvironmentSecret.Instance.NetworkCredentialPassword);
        client.Send(Message);
    }
Run Code Online (Sandbox Code Playgroud)


Sai*_*sad 7

实现“如果您有 Office 365 帐户”的一个好方法是使用与 Azure Logic App 集成的 Office 365 Outlook 连接器

希望这可以帮助某人!

  • 这对于企业帐户来说很棘手,因为[文档](https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-email?view=azure-bot-service- 4.0)说最好使用专用帐户,该帐户还必须禁用 MFA。所以基本上,您不能使用单独分配的企业帐户,如果您为此创建了另一个帐户,您还需要关闭 MFA - 需要与您的 IT 部门跳过一些障碍。 (2认同)

Ste*_*ner 6

对于想要使用内置 .NET SmtpClient 而不是 SendGrid 客户端库的人(不确定这是否是 OP 的意图),除非我将其apikey用作我的用户名和 api 密钥本身作为此处概述的密码。

<mailSettings>
    <smtp>
        <network host="smtp.sendgrid.net" port="587" userName="apikey" password="<your key goes here>" />
    </smtp>
</mailSettings>
Run Code Online (Sandbox Code Playgroud)


gre*_*ett 5

如果您正在寻找一些ESP备选方案,您也应该看看Mailjet for Microsoft Azure!作为全球电子邮件服务和基础架构提供商,它们使您能够通过其API,SMTP中继或UI从一个平台发送,交付和跟踪交易和营销电子邮件,同时考虑到开发人员和电子邮件所有者.

免责声明:我作为开发者布道者在Mailjet工作.

  • 快进到 2021 年:“注意:此集成不再可用。” (3认同)