提问人:Wasif 提问时间:9/5/2023 更新时间:9/5/2023 访问量:42
错误:消息失败:不允许中继 @ 。-C# MailKit Zoho
Error: Message failed: Relaying disallowed @ . -C# MailKit Zoho
问:
借助以下链接
错误:消息失败:553 不允许中继为 @ 。- NodeMail 佐霍
https://help.zoho.com/portal/en/community/topic/hi-i-have-an-error-code-553
我发现我的代码在电子邮件发送中缺少 From 标签,因此我收到错误 Relay Disallowed @.
我正在使用 .NET 6 Api 通过 #mailkit 发送电子邮件。早些时候我使用 M365 发送电子邮件,它工作正常,代码中不需要 From Tag。但后来我转向了 Zoho 邮件,我们开始出现中继 Disallowed @ 错误。在上面提到的链接的帮助下,我发现 from 标签是必需的。我尝试添加链接中提到的 from 标签,并且也尝试过这样的第一种方法给出的结果与中继不允许的 @ 相同,第二种方法给出了 MimeMessage mailkit 上无效解析令牌的例外。'"senderNameSameLikeTheZohoOne<[email protected]>'
"from: '"senderNameSameLikeTheZohoOne" [email protected]'".
答:
最后,我注意到以下代码中缺少 From 标签。因为正如我所提到的,我正在使用 M365 电子邮件发送电子邮件并且它工作正常。但为了 #Zoho 我需要在我的代码中添加这个 from 标签。
电子邮件。From.Add(MailboxAddress.Parse(request.从 ??_mailSettings.EmailFrom));
var email = new MimeMessage();
email.Sender = MailboxAddress.Parse(request.From ?? _mailSettings.EmailFrom);
email.From.Add(MailboxAddress.Parse(request.From ??_mailSettings.EmailFrom));
email.To.Add(MailboxAddress.Parse(request.To));
email.Subject = request.Subject;
var builder = new BodyBuilder();
builder.HtmlBody = request.Body;
email.Body = builder.ToMessageBody();
using var smtp = new SmtpClient();
//smtp.Connect(_mailSettings.SmtpHost, _mailSettings.SmtpPort, SecureSocketOptions.StartTls);
smtp.Connect(_mailSettings.SmtpHost, _mailSettings.SmtpPort, SecureSocketOptions.SslOnConnect);
smtp.Authenticate(_mailSettings.SmtpUser, _mailSettings.SmtpPass);
await smtp.SendAsync(email);
smtp.Disconnect(true);
我希望这对使用 mailkit 和 C# 的人有所帮助。
评论