2012-08-03 63 views
2

我在asp中使用“createuserwizard”创建表单。这是我的代码。SMTP服务器需要安全连接或客户端未通过身份验证。

<asp:CreateUserWizard ID="userwizard" ContinueDestinationPageUrl="~/secretfiles/secret.aspx" runat="server" > 
    <MailDefinition BodyFileName="register.txt" Subject="Registration Confirmation" From="[email protected]" /> 
    </asp:CreateUserWizard> 

这是我的web.config文件中的设置。

<mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
     <network host="smtp.gmail.com" port="25" userName="[email protected]" password="sending emails's password" /> 
     </smtp> 
    </mailSettings> 

然后解决了我选择的下列选项中的Smtp.in ISS设置。

->Use localhost(SMTP) 
->port=25 
->authentication not required 

现在,当新用户点击提交按钮,它提供了以下错误消息和邮件不会被发送。

SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.7.0必须首先发出STARTTLS命令。 ud8sm21095949igb.4

请帮帮忙。

+0

那么无论你的密码不正确,或者你可以,我不t知道 - 使用安全的smtp端口465 – t3hn00b 2012-08-03 12:14:20

回答

3

使用enableSsl="true",像这样:

<mailSettings> 
    <smtp deliveryMethod="Network" from="[email protected]"> 
    <network enableSsl="true" host="smtp.gmail.com" port="25" userName="[email protected]" password="sending emails's password" /> 
    </smtp> 
</mailSettings> 
0

服务器需要SSL,所以你需要添加到您的配置:

<mailSettings> 
    <smtp deliveryMethod="Network" from="[email protected]"> 
    <network host="smtp.gmail.com" port="25" userName="[email protected]" 
     password="sending emails's password" enableSsl="true" /> 
    </smtp> 
</mailSettings> 

详见here

+0

Thanks.its现在工作。只是帮助理解现在的代码。我假设它在以下流程中工作。本地主机请求smtp.gmail.com(服务器)与发送电子邮件(用户名,密码),接收电子邮件地址发送邮件到目的地。我是吧?请让我知道这也是我的电脑或smtp.gmail.com的端口号?再次感谢。 – user1544975 2012-08-03 12:29:46

0
protected void Button1_Click(object sender, EventArgs e) 
{ 

    MailMessage mail = new MailMessage(); 
    MailAddress from = new MailAddress("your mail [email protected]"); 
    SmtpClient clientobj = new SmtpClient("smtp.gmail.com"); 
    mail.From = from; 
    mail.To.Add(new MailAddress(" to mail [email protected]")); 
    mail.Subject = "example gridview"; 
    mail.Body+="Please check below data <br/><br/>"; 
    mail.Body += getgridviewdata(gv1); 
    mail.IsBodyHtml = true; 
    clientobj.Credentials = new System.Net.NetworkCredential("your [email protected]", "your email password"); 
    clientobj.Port =587; 
    clientobj.EnableSsl = true; 
    clientobj.Send(mail); 


} 
在上面GV1

是我的GridView控件ID

public string getgridviewdata(GridView gv) 
{ 
    StringBuilder strBuilder = new StringBuilder(); 
    StringWriter strWriter = new StringWriter(strBuilder); 
    HtmlTextWriter htw = new HtmlTextWriter(strWriter); 
    gv.RenderControl(htw); 
    return strBuilder.ToString(); 
} 
public override void VerifyRenderingInServerForm(Control control) 
{ 
    /* Verifies that the control is rendered */ 
} 

你写的下面还以源代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="example.aspx.cs" Inherits="example" EnableEventValidation="false" %> 
+0

下次请注意正确的代码格式:单击问号然后_advanced formating_以了解如何操作:-) – kleopatra 2013-03-19 13:28:02

相关问题