2011-04-12 73 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; 

    }