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

初始化空MailMessage对象触发"对象引用未设置到实例"异常

问题:初始化MailMessage时抛出空引用异常

使用System.Net.Mail库初始化MailMessage对象时,无论采用空初始化还是传入To/From地址初始化,都会在MailMessage msg = new MailMessage();行抛出Object reference not set to an instance of an object异常。需求是遍历多个邮箱地址添加至MailMessage的To字段,因此必须先初始化空对象。

相关代码如下:

SmtpClient smtp = new SmtpClient();
smtp.Host = "host-address";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

MailMessage msg = new MailMessage();
string[] TOaddresses = emailModel.To.Split(';');
string[] BCCaddresses = emailModel.Bcc.Split(';');
string[] CCaddresses = emailModel.Cc.Split(';');

msg.From = new MailAddress(emailModel.From);

foreach (var emailAddress in TOaddresses)
    msg.To.Add(emailAddress);
foreach (var emailAddress in BCCaddresses)
    msg.Bcc.Add(emailAddress);
foreach (var emailAddress in CCaddresses)
    msg.CC.Add(emailAddress);

msg.Subject = "TEST: " + emailModel.Subject;
msg.Body = emailModel.Body;
msg.IsBodyHtml = true;

smtp.Send(msg);

排查与解决建议

  • 检查emailModel实例状态:确认emailModel已被正确实例化,不存在null情况。调试器有时会显示错误的异常行号,实际异常可能来自后续访问emailModel属性时的空引用。
  • 验证程序集引用:确保项目已正确引用System.dll(System.Net.Mail命名空间包含在此程序集内),避免因缺少依赖导致实例化失败。
  • 调整初始化方式:若空初始化失败,尝试直接传入From地址初始化MailMessage,同时确保emailModel.From不为null或空字符串:
    MailMessage msg = new MailMessage(emailModel.From, string.Empty);
    
  • 添加空值检查:在拆分邮箱地址前,先判断对应属性是否为null或空,避免调用Split时触发异常:
    string[] TOaddresses = !string.IsNullOrEmpty(emailModel.To) ? emailModel.To.Split(';') : Array.Empty<string>();
    string[] BCCaddresses = !string.IsNullOrEmpty(emailModel.Bcc) ? emailModel.Bcc.Split(';') : Array.Empty<string>();
    string[] CCaddresses = !string.IsNullOrEmpty(emailModel.Cc) ? emailModel.Cc.Split(';') : Array.Empty<string>();
    
  • 排查环境权限:如果在服务器环境(如IIS)运行,检查应用程序池权限是否足够加载系统库,或是否有安全策略限制了MailMessage的实例化操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:42:35