gpt4 book ai didi

azure - 在不使用 SendGrid 和 Office 365 的情况下从 Azure Function App 发送电子邮件

转载 作者:行者123 更新时间:2023-12-02 06:19:19 25 4
gpt4 key购买 nike

我需要从 Azure Function 应用程序发送电子邮件,而不使用 sendgrid 和 office365。

通过使用outlook和Gmail smtp,该功能出现错误

using System;
using System.Text;
using System.Net;
using System.Net.Mail;
using System.Configuration;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;


public static void Run(Stream myBlob, string name, ILogger log, ExecutionContext context)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");

string fromEmail = System.Environment.GetEnvironmentVariable("SmtpUser");
string toEmail = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4627242506212b272f2a6825292b" rel="noreferrer noopener nofollow">[email protected]</a>";
int smtpPort = Int32.Parse(System.Environment.GetEnvironmentVariable("SmtpPort"));
bool smtpEnableSsl = true;
string smtpHost = System.Environment.GetEnvironmentVariable("SmtpHost"); // your smtp host
string smtpUser = System.Environment.GetEnvironmentVariable("SmtpUser"); // your smtp user
string smtpPass = System.Environment.GetEnvironmentVariable("SmtpPassword"); // your smtp password
string subject = System.Environment.GetEnvironmentVariable("EmailSubject");
string message = "Hello, you are recieving message from Azure Function /n Thanks, /n Pooja";

log.LogInformation($" Pass : {smtpPort} : Email: {fromEmail} : Host: {smtpHost} : Subject : {subject}");


SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Port = smtpPort;
client.EnableSsl = smtpEnableSsl;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Host = smtpHost;
client.Credentials = new System.Net.NetworkCredential(smtpUser, smtpPass);

MailMessage mail = new MailMessage();
mail.Subject = subject;
mail.From = new MailAddress(fromEmail);
mail.Body=message;
mail.To.Add(new MailAddress(toEmail));

try{
client.Send(mail);

log.LogInformation("Email sent");

}

catch(Exception ex){
log.LogInformation(ex.ToString());
}

}

System.Net.Mail.SmtpException: SMTP 服务器需要安全连接或客户端未经身份验证。服务器响应是:5.5.1 需要身份验证。

最佳答案

由于公共(public)云服务 IP 的弹性性质,不支持直接从 Azure 计算服务中托管的电子邮件服务器向外部域(例如 Outlook.com、gmail.com 等)发送出站电子邮件滥用的可能性。因此,Azure 计算 IP 地址 block 将添加到公共(public) block 列表(例如 Spamhaus PBL)。这项政策没有异常(exception)。”

目前在 Azure Web App 上使用 EMAIL 功能的唯一方法是通过 SMTP 中继。 SendGrid 等第三方服务提供此类服务。

在 Azure Web Apps 架构中,实际的 Web Apps 位于公共(public)前端后面,这些前端由该数据中心上托管的所有站点共享。该数据中心上托管的站点之一有可能正在发送垃圾邮件,并且该 IP 地址可能会被邮件服务器列入黑名单。因此,从该地址发送的电子邮件将被邮件服务器拒绝或视为垃圾邮件

关于azure - 在不使用 SendGrid 和 Office 365 的情况下从 Azure Function App 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57327119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com