我创建了我的Web应用程序和用户PasswordRecovery
控件。
我在html中的代码:
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server">
<MailDefinition From="mail@gmail.com" Subject="ResetPassword"
Priority="High"/>
</asp:PasswordRecovery>
我的web.config代码是:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="mail@gmail.com">
<network
host="smtp.gmail.com"
port="25"
password="xxxxxxx"
defaultCredentials="true"/>
</smtp>
</mailSettings>
</system.net>
但是我得到了这些错误而且它不起作用。
1 - SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。
2-A连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应173.194.66.109:25
我的web.config代码是
<configuration>
<system.web>
<roleManager enabled="true" />
<authentication mode="Forms" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<!-- ... -->
<system.net>
<mailSettings>
<smtp from="mail@gmail.com">
<network host="smtp.gmail.com" password="mypassword"
enableSsl="true" port="578" userName="hsadeghi.t@gmail.com" />
</smtp>
</mailSettings>
</system.net>
</configuration>
并形成:
<%@ Page Title="" Language="C#" MasterPageFile="~/Masters/master-store.Master"
AutoEventWireup="true" CodeBehind="UserPasswordRecovery.aspx.cs"
Inherits="Store.Pages.userpasswordrecovery" %>
<!-- ... -->
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="wrapper">
<div class="wrapper-rim">
<div class="site-content">
<div class="recovery-password" dir="rtl">
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server"/>
</div>
</div>
</div>
</div>
</asp:Content>
答案 0 :(得分:1)
除了在配置中启用ssl之外,您还需要设置正确的端口,不是 25.这是587。
<smtp deliveryMethod="Network" from="someaccount@gmail.com">
<network
host="smtp.gmail.com"
port="587"
enableSsl="true"
userName="someaccount@gmail.com"
password="somepassword"
defaultCredentials="false"/>
</smtp>
答案 1 :(得分:0)
您需要指定连接是安全的:
<network enableSsl="true" ...
答案 2 :(得分:0)
在之前的回答中有一个非常重要的错误。
defaultCredentials
属性应为false
而不是true
,以便与Gmail配合使用。