2016-11-16 148 views
1

到目前为止,我有这个代码用于电子邮件验证和邮件发送使用SMTPClient但它不会工作,它不会发送到gmail声明。但我认为我的代码没有问题。我需要一些帮助来发送邮件。如何使用SMTP发送邮件?

string validEmailPattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" 
     + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" 
     + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$"; 
      Regex ex = new Regex(validEmailPattern, RegexOptions.IgnoreCase); 

      if (ex.IsMatch(TextBox1.Text)) 
      { 

       MailMessage m = new MailMessage(); 
       m.From = new MailAddress("[email protected]"); 
       m.To.Add(new MailAddress("[email protected]")); 
       m.Subject = "Try"; 
       m.Body = "TEST"; 

       SmtpClient smtp = new SmtpClient(); 
       smtp.Host = "smtp.gmail.com"; 
       smtp.Port = 587; 
       smtp.Credentials = new System.Net.NetworkCredential() 
       { 
        UserName = "[email protected]", 
        Password = "********" 
       }; 
       smtp.EnableSsl = true; 
       smtp.Send(m); 
+0

你试图从别人例如Hotmail或Yahoo发送电子邮件?您可能需要允许访问您的Google帐户才能通过Gmail发送给我。 – active92

回答

1

改变你smtp.Host = "yourdomainname.com";

+0

[email protected]意味着[email protected]? –

+0

否[email protected]首先在您的域名帐户中创建webmail –

+0

Gmail帐户在smtp.gmail.com中不起作用 –

0
Try this code after **smtp.EnableSsl = true;** 

string validEmailPattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" 
    + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" 
    + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$"; 
     Regex ex = new Regex(validEmailPattern, RegexOptions.IgnoreCase); 

     if (ex.IsMatch(TextBox1.Text)) 
     { 
      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 587; 
      smtp.Credentials = new System.Net.NetworkCredential() 
      { 
       UserName = "[email protected]", 
       Password = "********" 
      }; 
      smtp.EnableSsl = true; 

      MailMessage m = new MailMessage(); 
      m.From = new MailAddress("[email protected]"); 
      m.To.Add(new MailAddress("[email protected]")); 
      m.Subject = "Try"; 
      m.Body = "TEST"; 

      smtp.Send(m); 
     }