You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MimeKit发邮件异常:Home控制器失败,BlogData控制器正常

问题分析与解决方案

核心问题:收件邮箱地址拼写错误

你收到的511 sorry, no mailbox here by that name错误,本质是目标收件邮箱不存在。查看Home控制器的代码:

Message m = new Message(new List<string> { "ans1234@gamil.com" }, ...);

这里把gmail.com误写成了gamil.com(少了字母r),这个域名下没有对应的合法邮箱账号,因此邮件服务器返回地址不存在的错误。

而BlogData控制器能正常发送,必然是它使用了正确的收件地址(比如ans1234@gmail.com),所以未触发该错误。

修复步骤

  1. 修正收件地址拼写:
Message m = new Message(new List<string> { "ans1234@gmail.com" }, "Someone messaged from KGS", string.Format("Name: {0}, Email: {1}, Message: {2}", emailMessage.Name, emailMessage.Email, emailMessage.Message), files);
  1. 完善异步方法调用:当前代码直接调用异步方法却未等待,可能导致异常无法被正确捕获,需补充await并修改方法签名:
[HttpPost]
public async Task<IActionResult> SendEmail([Bind("Name,Email,Message")] SingleEmailMessage emailMessage)
{
    try
    {
        var files = Request.Form.Files.Any() ? Request.Form.Files : new FormFileCollection();
        Message m = new Message(new List<string> { "ans1234@gmail.com" }, "Someone messaged from KGS", string.Format("Name: {0}, Email: {1}, Message: {2}", emailMessage.Name, emailMessage.Email, emailMessage.Message), files);
        await _emailSender.SendEmailWithAttchmentsAsync(m);
    }
    catch(Exception ex)
    {
        return Json(new { data = "Error" });
    }
    return Json(new { data = "DONE" });
}

额外验证点

  • 调试时确认_emailConfig的各项参数(用户名、密码、SMTP服务器)已正确读取配置
  • 检查Gmail应用密码是否有效,未被账号安全策略撤销

内容的提问来源于stack exchange,提问作者nikhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:15:44