【问题标题】:Unable to attach email to MailMessage无法将电子邮件附加到 MailMessage
【发布时间】:2023-03-09 00:03:02
【问题描述】:

我正在尝试从 sql 生成电子邮件列表,然后使用该列表将每个电子邮件地址附加到邮件消息中。我得到:

指定的字符串不是电子邮件所需的格式 地址。

我做错了什么?此错误发生在 Page_Load 中的 foreach 中。查看 mailAddress 变量时,它正常显示电子邮件地址,因为它应该是“johndoe@gmail.com”

我尝试了一些建议,例如将邮件添加到:

msg.To.Add(new MailAddress(mailAddress.ToString())); 

但这没有用。

public class Supervisor
{
   public string Email { get; set; }
}

public List<Supervisor> LoadSupervisors(int ID)
{
   var listOfEmails = new List<Supervisor>();
   using (SqlConnection conn = new SqlConnection(""))
   {
      SqlCommand cmd = new SqlCommand(@"", conn2);
      cmd.Parameters.AddWithValue("@ID", ID);
      conn.Open();
      SqlDataReader rdr = cmd.ExecuteReader();
      while (rdr.Read())
      {
         var supervisor = new Supervisor();
         supervisor.Email = rdr["Email"].ToString();
         listOfEmails.Add(supervisor);
      }
    }
    return listOfEmails;
}

protected void Page_Load(object sender, EventArgs e)
{
   //----- Bunch of code that isn't related
   while (rdr.Read())
   {
      var listOfEmails = new List<Supervisor>();
      listOfEmails = LoadSupervisors(Convert.ToInt32(rdr["UserID"]));

      MailMessage msg = new MailMessage();
      SmtpClient server = new SmtpClient("");
      foreach (var mailAddress in listOfEmails)
      {
          msg.To.Add(mailAddress.ToString());
      }
      //----- Bunch of code that isn't related
   }
}

【问题讨论】:

标签: c# asp.net list mailmessage


【解决方案1】:

我认为你应该得到你的mailAddress.Email 属性而不是它本身。因为mailAddressSupervisor,而不是string 之类的。

试试看;

msg.To.Add(mailAddress.Email.ToString());

当然,我们对Email 类型一无所知,我假设它会将此邮件地址作为字符串返回,因为你说你在调试器或其他东西上看到它。

【讨论】:

    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2019-06-05
    相关资源
    最近更新 更多