希望有人可以提供帮助。我想从我的Azure帐户发送电子邮件。我的域名配置为与Azure一起使用。
我无法在网上轻易找到如何从Azure帐户发送电子邮件。有一些提到SendGrid,但似乎我的帐户不支持它。
有人可以指导我如何从Azure托管的网站发送电子邮件吗?
答案 0 :(得分:45)
我知道这是一篇旧帖子,但我刚刚注册了Azure,我每月通过SendGrid免费获得25,000封电子邮件。这些说明非常好,我在几分钟内就开始运行了:
How to Send Email Using SendGrid with Azure
Azure客户每月可以解锁25,000封免费电子邮件。
答案 1 :(得分:10)
从第三方发送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);
答案 2 :(得分:5)
如果你正在寻找一些ESP替代品,你也应该看看Mailjet for Microsoft Azure!作为全球电子邮件服务和基础架构提供商,它们使您能够通过其API,SMTP中继或UI从一个平台发送,交付和跟踪交易和营销电子邮件,同时考虑到开发人员和电子邮件所有者。
免责声明:我作为开发者布道者在Mailjet工作。
答案 3 :(得分:4)
对于想要使用内置.NET SmtpClient而不是SendGrid客户端库的人(不确定这是否是OP的意图),除非我使用apikey
作为我,否则我无法使用它用户名和api密钥本身作为here概述的密码。
<mailSettings>
<smtp>
<network host="smtp.sendgrid.net" port="587" userName="apikey" password="<your key goes here>" />
</smtp>
</mailSettings>
答案 4 :(得分:4)
如果您拥有Office 365帐户,实现此目的的一个好方法是使用Office 365 outlook connector integrated with Azure Logic App,
希望这有助于某人!
答案 5 :(得分:1)
我永远不会推荐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);
}