2013-07-11 149 views
0

我正在使用ASP.NET mvc 4.我正尝试使用smtp客户端发送电子邮件。我现在正在使用localhost。但是,我的代码会抛出“无法连接到远程服务器“。任何人都可以帮助我,我做错了什么?Asp.net mvc 4发送电子邮件

我的代码:

using System.Net.Mail; 
using System.Net.Mime 





    MailMessage msg = new MailMessage(); 
      SmtpClient client = new SmtpClient(); 


      try 
      { 
       msg.From = new MailAddress("[email protected]", "Display name"); 
       msg.To.Add("[email protected]"); 
       msg.Subject = "Password"; 
       msg.Body = "This is the test"; 
       msg.Priority = MailPriority.High; 
       msg.IsBodyHtml = true; 

       //the actual email and to send the picture in the image......... 

       // return "reached here"; 
       string str = "<html><body><h1>picture</h1></br></body></html>"; 
       AlternateView av = AlternateView.CreateAlternateViewFromString(str, null, MediaTypeNames.Text.Html); 
       // LinkedResource lr = new LinkedResource("C:/RANJAN'S/PROJECTS/Darn/Darn_3/darnCoupon/darnCoupon/Images/Carousel/carousel_1.jpg", MediaTypeNames.Image.Jpeg); 
       // lr.ContentId = "image1"; 
       // av.LinkedResources.Add(lr); 
       msg.AlternateViews.Add(av); 



       client.Host = "smtp.gmail.com"; 
       client.Port = 587; 

       client.DeliveryMethod = SmtpDeliveryMethod.Network; 
       client.Credentials = new System.Net.NetworkCredential("[email protected]", "Password"); 
       client.UseDefaultCredentials = false; 
       client.EnableSsl = true; 

       client.Send(msg); 

       return "reached here toooooooo"; 

       // return msg.ToString(); 

      } 
      catch (Exception ex) 
      { 

       return ex.InnerException.Message; 

      } 

      return "nothing happpened"; 


     } 

My web.COnfig 






<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=darnCoupon_db;MultipleActiveResultSets=True ;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\darnCoupon_db.mdf" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="PreserveLoginUrl" value="true" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" timeout="2880" /> 
    </authentication> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    </system.web> 


    <system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
     <network defaultCredentials="true" host="smtp.gmail.com" port="587" userName="[email protected]" password="Password"/> 

     </smtp> 
    </mailSettings> 
    </system.net> 




    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 
+6

你应该改变你的Gmail密码,_right now_的凭证信息。 – SLaks

+0

您可能有防火墙。 – SLaks

+0

您仍然需要更改密码。 http://stackoverflow.com/posts/17602292/revisions – SLaks

回答

1

我建议你下载并从这里(http://smtp4dev.codeplex.com/)安装Smtp4Dev。一旦你安装了这个,你将能够判断邮件是否被发送,而不管你是否使用smtp服务器设置。一旦你确定问题的根源不是你的代码,那么你可以看到你的smtp服务器设置发生了什么。

+0

谢谢..我决定和Mvc Mailer一起去,而且效果很好。我感谢大家的帮助。再次感谢你。 – user2569653

0

试试看看这个代码。我希望它能像你期望的那样工作。

SmtpClient client = new SmtpClient(); 
      MailMessage msg = new MailMessage();     
      MailAddress to = new MailAddress("client email address"); 
      MailAddress from = new MailAddress("Your Email Address"); 
      msg.IsBodyHtml = true; 
      msg.Subject = "Mail Title"; 
      msg.To.Add(to); 
      msg.Body = "Your message"; 
      msg.From = from; 
      client.Send(msg); 

在根据配置部分web.config文件,你需要写邮件帐户

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
     <network host="smtp.gmail.com" port="587" userName="your email address" password="your password" defaultCredentials="false" enableSsl="true" /> 
     </smtp> 
    </mailSettings> 
    </system.net>