gpt4 book ai didi

c# - SMTP 服务器需要安全连接或客户端未通过身份验证 - 错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:25 25 4
gpt4 key购买 nike

我正在尝试使用 Amazon SES 发送电子邮件。

我可以使用我们本地的 SMTP 服务器发送电子邮件,也可以使用亚马逊网站上提供的示例发送电子邮件。

我需要在电子邮件中发送发件人地址和收件人地址名称。我无法使用 Amazon SDK 中提供的 SendEmailRequest 类执行此操作,因为 WithSource(toaddress)WithDestination(destinationaddress) & WithReplyToAddresses( replytoaddress) 方法,因此我无法在此处传递来自发件人 7 收件人的名称,因此我使用常规方法使用 Amazon 配置发送邮件。

我尝试通过代码硬编码以及通过文件 puyting 配置两种方式来传递凭据,但在使用端口 587 时,我仍然在上述两种方式中遇到相同的错误,

“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:需要身份验证”

尝试使用 465 端口时出现此错误,“发送邮件失败”

当尝试输入 IP 地址而不是亚马逊服务器的主机地址时出现此错误。

“根据验证程序,远程证书无效。”

请告诉我我在这里缺少什么,

这是我的代码,

 MailMessage mail = new MailMessage();
mail.From = new System.Net.Mail.MailAddress(FromEmail, FromName);

SmtpClient smtp = new SmtpClient("email-smtp.us-east-1.amazonaws.com", 587);

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential(AWSAccessKey, AWSSecretKey);

//recipient address
mail.To.Add(new MailAddress(ToEmail, ToName));

//Formatted mail body
mail.IsBodyHtml = true;
mail.Body = strBody;
smtp.Send(mail);

提前致谢..!!!

最佳答案

我通过以下格式传递带有电子邮件用户名的电子邮件解决了这个问题

用户名

来自亚马逊网站的示例已经为我所用,

这是我的工作代码,

 AWSCredentials objAWSCredentials = new BasicAWSCredentials(AWSAccessKey, AWSSecretKey);

Destination destination = new Destination().WithToAddresses(new List<string>() { TO });

// Create the subject and body of the message.
Content subject = new Content().WithData(SUBJECT);
Content textBody = new Content().WithData(BODY);
Body body = new Body().WithHtml(textBody);
//Body body = new Body().WithText(textBody);

// Create a message with the specified subject and body.
Message message = new Message().WithSubject(subject).WithBody(body);

// Assemble the email.
SendEmailRequest request = new SendEmailRequest().WithSource(FROM).WithDestination(destination).WithMessage(message).WithReplyToAddresses(REPLYTO);

// Instantiate an Amazon SES client, which will make the service call. Since we are instantiating an
// AmazonSimpleEmailServiceClient object with no parameters, the constructor looks in App.config for
// your AWS credentials by default. When you created your new AWS project in Visual Studio, the AWS
// credentials you entered were added to App.config.
AmazonSimpleEmailServiceClient client = new AmazonSimpleEmailServiceClient(objAWSCredentials);

// Send the email.
Console.WriteLine("Attempting to send an email through Amazon SES by using the AWS SDK for .NET...");
client.SendEmail(request);

这里我以这种格式传递了 FROM、TO 和 ReplyToAddress,用户名

关于c# - SMTP 服务器需要安全连接或客户端未通过身份验证 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18079124/

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