2012-04-23 113 views
-1

我使用的是MVC3,需要向用户发送电子邮件。我不想使用Gmail服务器。但是,我确实想使用服务器10.1.70.100。我不明白我做错了什么。这里是我的代码:通过mvc3应用程序发送电子邮件

   var fromAddress = new MailAddress("[email protected]", "From Name");     var toAddress = new MailAddress(EmailID, "To Name"); 
       const string fromPassword = "";//To be Filled 
       const string subject = "Verification Mail"; 

       string body = "You have successfully registered yourself. Please Enter your Verification code " + code.ActivatedCode; 
       var smtp = new SmtpClient 
       { 
        Host = "10.1.70.100", 
        Port = 587, 
        EnableSsl = true, 
        DeliveryMethod = SmtpDeliveryMethod.Network, 
        Credentials = new NetworkCredential(), 

        Timeout = 100000 
       }; 
       using (var message = new MailMessage(fromAddress, toAddress) 
       { 
        Subject = subject, 
        Body = body 
       }) 
       { 
        smtp.Send(message); 
       } 

有人能提出一个方法,通过它,我没有给我的凭据?

回答

1

对于我们的OSS项目,我们使用这个小帮手。希望能帮助到你。

public void SendEmail(string address, string subject, string message) 
    { 
     string email = ConfigurationManager.AppSettings.Get("email"); 
     string password = ConfigurationManager.AppSettings.Get("password"); 
     string client = ConfigurationManager.AppSettings.Get("client"); 
     string port = ConfigurationManager.AppSettings.Get("port"); 

     NetworkCredential loginInfo = new NetworkCredential(email, password); 
     MailMessage msg = new MailMessage(); 
     SmtpClient smtpClient = new SmtpClient(client, int.Parse(port)); 

     msg.From = new MailAddress(email); 
     msg.To.Add(new MailAddress(address)); 
     msg.Subject = subject; 
     msg.Body = message; 
     msg.IsBodyHtml = true; 

     smtpClient.EnableSsl = true; 
     smtpClient.UseDefaultCredentials = false; 
     smtpClient.Credentials = loginInfo; 
     smtpClient.Send(msg); 
    } 
+0

茹里:感谢名单的答复BTü可以建议我sumthing通过我不需要给我的证书? – priya77 2012-04-23 12:37:28

+0

使用服务帐户,我们有一个域名服务帐户,所有电子邮件都通过noreply @ domain – 2012-04-23 13:07:56

+1

发送,使用凭据取决于邮件服务器配置。 gmail等服务使用ssl和证书来发送电子邮件acc。有些托管服务提供商提供不带ssl和凭证的pop访问权限,但您必须要求其客户支持。我同意@CDSmith并建议您创建应用程序将使用的服务电子邮件,这将大大提高您的安全性。如果noreply不是选项创建邮件地址,则您将转发给自己的邮件,并继续使用受保护的个人电子邮件与客户进行通信。 – 2012-04-23 13:30:57

2

我更喜欢下面的方式这样做:

Web.config文件:

<system.net> 
     <mailSettings> 
      <smtp from="Description"> 
       <network host="your.smtpserver" password="" userName="" /> 
      </smtp> 
     </mailSettings> 
    </system.net> 

您的代码:

 var smtpClient = new SmtpClient(); 
     smtpClient.Send(mail);