2011-04-12 54 views
1

我写了下面的方法我得到的错误为指定的字符串不是在一个电子邮件地址所需的形式。请帮助我如何从.net发送邮件?

SendMail("[email protected]","hi","heloo"); 

public bool SendMail(string toMailAddress, string mailSubject, string mailMessage) 
    { 

     string smtphost ="smtp.gmail.com"; 
      int smtpport = 100; 
      string smtpuser ="xyz"; 
      string smtppwd = "xyz"; 
      SmtpClient client = null; 



      string MessageBody = string.Empty; 
      try 
      { 

       message = new MailMessage(); 
       message.From = new MailAddress(smtpuser); 
       message.To.Add(toMailAddress); 
       message.BodyEncoding = System.Text.Encoding.UTF8; 
       message.Subject = mailSubject; 
       message.Body = mailMessage.ToString(); 



       message.IsBodyHtml = true; 

       client = new SmtpClient(); 
       client.Host = smtphost; 

       client.Port = smtpport; 
       client.Credentials = new System.Net.NetworkCredential(smtpuser, smtppwd); 
       client.Send(message); 
      } 
      catch (Exception ex) 
      { 
       string x = ex.Message; 
      } 
      return true; 
     } 
+0

上哪一行发生错误? – 2011-04-12 12:00:59

+1

您可以打印* toMailAddress *变量并查看它是否是正确的电子邮件地址? – Niklas 2011-04-12 12:04:22

+0

另外,你正在做这个** string smtpuser =“xyz”; **然后你用它作为电子邮件地址? – Niklas 2011-04-12 12:06:38

回答

0

您的“来自”用户必须采用有效的电子邮件地址的形式。

message.From = new MailAddress(smtpuser); 

此外,您还需要为.To属性使用MailAddress构造函数。

0

尝试,以端口为25和IsSSLEnabled为真因为Gmail服务器启用了SSL

0

确保toMailAddress,并smtpuser是有效的电子邮件地址。 尝试使用smtpport = 587;由Gmail提供的外发邮件(SMTP)。 希望这会使它工作正常。请列出你遇到的错误。

0

此代码将工作。我做了什么都

  1. 适当smtphost
  2. 适当SMTPPORT - 587
  3. 设置凭据
  4. 集之前启用SSL
  5. 集UseDefaultCredentials假DeliveryMethod
 public static bool SendMail(string toMailAddress, string mailSubject, string mailMessage) 
    {    
     string smtphost = "smtp.gmail.com"; 
     int smtpport = 587; 
     string smtpuser = "[email protected]"; 
     string smtppwd = "password"; 

     SmtpClient client = null; 



     string MessageBody = string.Empty; 
     try 
     { 

      var message = new MailMessage(); 
      message.From = new MailAddress(smtpuser);     
      message.To.Add(toMailAddress); 
      message.BodyEncoding = System.Text.Encoding.UTF8; 
      message.Subject = mailSubject; 
      message.Body = mailMessage.ToString(); 
      message.IsBodyHtml = true; 

      client = new SmtpClient(); 
      client.Host = smtphost;     
      client.EnableSsl = true; 
      client.Port = smtpport; 
      client.UseDefaultCredentials = false; 
      client.DeliveryMethod = SmtpDeliveryMethod.Network; 
      client.Credentials = new System.Net.NetworkCredential(smtpuser, smtppwd); 

      client.Send(message); 
     } 
     catch (Exception ex) 
     { 
      string x = ex.InnerException.Message; 
      Console.WriteLine(x); 
     } 
     return true; 

    }