错误:消息失败:不允许转发@。 -C# MailKit Zoho

问题描述 投票:0回答:1

借助以下链接

错误:消息失败:553 不允许作为 @ 进行中继。 - NodeMail Zoho

https://help.zoho.com/portal/en/community/topic/hi-i-have-an-error-code-553

我发现我的代码在电子邮件发送中缺少 From 标签,因此我收到错误 Relaying Disallowed @。

我使用 .NET 6 Api 使用#mailkit 发送电子邮件。早些时候,我使用 M365 发送电子邮件,它工作正常,并且代码中不需要 From Tag。但后来我转移到 Zoho mail,我们开始收到转发 Disallowed @ 错误。在上面提到的链接的帮助下,我发现 from 标签是必需的。我尝试从链接中提到的标签添加

'"senderNameSameLikeTheZohoOne<[email protected]>'
,也尝试了这样的
"from: '"senderNameSameLikeTheZohoOne" [email protected]'".
第一种方法给出的结果与Relaying Disallowed @相同,第二种方法给出了MimeMessage mailkit上无效解析令牌的异常。

c# asp.net-core-webapi mailkit zoho
1个回答
0
投票

最后我注意到下面的代码中缺少 From 标签。因为正如我提到的,我正在使用 M365 电子邮件发送电子邮件,并且工作正常。但对于#Zoho,我需要在代码中添加此标记。

email.From.Add(MailboxAddress.Parse(request.From) ??_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# 的人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.