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

Error: Message failed: Relaying disallowed @ . -C# MailKit Zoho

提问人:Wasif 提问时间:9/5/2023 更新时间:9/5/2023 访问量:42

问:

借助以下链接

错误:消息失败: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]'".

C# ASP.net-core-webapi mailkit zoho

评论


答:

0赞 Wasif 9/5/2023 #1

最后,我注意到以下代码中缺少 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# 的人有所帮助。