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

Posted

技术标签:

【中文标题】指定的字符串不是电子邮件地址所需的格式。发送电子邮件时【英文标题】:The specified string is not in the form required for an e-mail address. when sending an email 【发布时间】:2015-11-26 16:34:40 【问题描述】:

尝试使用以下代码向多个收件人发送电子邮件时出现此错误:

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

string[] email = "emailone@gmail.com","emailtow@gmail.com";
using (MailMessage mm = new MailMessage("teset123321@gmail.com", email.ToString()))

     try
     
          mm.Subject = "sub;
          mm.Body = "msg";
          mm.Body += GetGridviewData(GridView1);
          mm.IsBodyhtml = true;
          SmtpClient smtp = new SmtpClient();
          smtp.Host = "smtpout.server.net";
          smtp.EnableSsl = false;
          NetworkCredential NetworkCred = new NetworkCredential("email", "pass");
          smtp.UseDefaultCredentials = true;
          smtp.Credentials = NetworkCred;
          smtp.Port = 80;
          smtp.Send(mm);
          ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Email sent.');", true);
      
      catch (Exception ex)
      
          Response.Write("Could not send the e-mail - error: " + ex.Message);    
      

【问题讨论】:

new NetworkCredential("email@mymail.com", "pass"); 在提出问题之前,请确保您已通过单步调试代码并尝试找出问题所在,彻底调试了您的程序。当您发布问题时,请确保准确指定错误来自哪一行 【参考方案1】:

现在是你的代码:

new NetworkCredential("email", "pass");

"email" 视为电子邮件地址,最终不是电子邮件地址,而是包含电子邮件地址的字符串数组。

所以你可以这样尝试:

foreach (string add in email)

    mm.To.Add(new MailAddress(add));

【讨论】:

【参考方案2】:

将您的使用行更改为:

using (MailMessage mm = new MailMessage())

添加发件人地址:

mm.From = new MailAddress("myaddress@gmail.com");

您可以遍历电子邮件地址的字符串数组,并像这样一一添加:

string[] email =  "emailone@gmail.com", "emailtwo@gmail.com", "emailthree@gmail.com" ;

foreach (string address in email)

    mm.To.Add(address);

例子:

string[] email =  "emailone@gmail.com", "emailtwo@gmail.com", "emailthree@gmail.com" ;

using (MailMessage mm = new MailMessage())

    try
    
        mm.From = new MailAddress("myaddress@gmail.com");

        foreach (string address in email)
        
            mm.To.Add(address);
        

        mm.Subject = "sub;
        // Other Properties Here
    
   catch (Exception ex)
   
       Response.Write("Could not send the e-mail - error: " + ex.Message);
   

【讨论】:

【参考方案3】:

我在使用 SMTP.js 时遇到了这个问题,但问题来自空白,因此请在使用电子邮件时尝试将其删除。我希望这对某人有所帮助。

【讨论】:

以上是关于指定的字符串不是电子邮件地址所需的格式。发送电子邮件时的主要内容,如果未能解决你的问题,请参考以下文章

email地址 地址怎么写?

贝宝捐赠的通知到别处而不是指定的收件人

什么是电子邮件

Outlook 365 EWS 流式通知 |如何计算发送和接收消息所需的时间?

使用 python 将邮件发送给所需的收件人

将电子邮件从身份验证列表发送给Firebase上的所有用户