2012-08-03 67 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

相關問題