2013-02-04 49 views
0

我正在嘗試使用SmtpMail發送電子郵件。在我的本地服務器上,即使代碼具有主機/服務器,密碼和來自代碼中設置的信息,我也可以執行此操作。在我的託管服務(1and1)上它只會發送,如果我在web.config文件中設置這些東西!有誰知道什麼可能會導致此(1and1不知道)。爲什麼SmtpMail不能發送,除非從/ web.config中設置/ host?

本地工作,但不是在託管servcie

<%@ Page language="c#" %> 
<%@ Import namespace="System.Net.Mail" %> 
<% 

    MailMessage mail = new MailMessage(); 

    //Set my from address 
    mail.From = new MailAddress("[email protected]"); 

    //Who I'm sending to 
    mail.To.Add(new MailAddress("[email protected]")); 

    mail.Subject = "A test"; 
    mail.Body = "Test message"; 

    //Set the mail server (default should be smtp.1and1.com) 
    SmtpClient smtp = new SmtpClient("smtp.1and1.com"); 

    //Enter your full e-mail address and password 
    smtp.Credentials = new NetworkCredential("[email protected]", "mypassword"); 

    //Send the message 
    smtp.Send(mail); 

%> 

這是怎麼了我得到它的工作在託管(兩個文件,測試頁和web.config中)

<%@ Page language="c#" %> 
<%@ Import namespace="System.Net.Mail" %> 
<% 

    MailMessage mail = new MailMessage(); 

    //Set my from address 
    mail.From = new MailAddress("[email protected]"); 

    //Who I'm sending to 
    mail.To.Add(new MailAddress("[email protected]")); 

    mail.Subject = "A test"; 
    mail.Body = "Test message"; 

    //Create with no server or credentials (grabs from web.config) 
    SmtpClient smtp = new SmtpClient(); 

    //Send the message 
    smtp.Send(mail); 

%> 

(和web.config)

<configuration> 
    <system.net> 
     <mailSettings> 
      <smtp from="[email protected]"> 
       <network host="smtp.1and1.com" port="25" userName="[email protected]" password="mypassword"/> 
      </smtp> 
     </mailSettings> 
    </system.net> 
</configuration> 
+0

當你沒有在web.config中設置它會發生什麼?我假設你得到一個錯誤,錯誤是什麼? – CodingGorilla

+0

@CodingGorilla是的,我根據瀏覽器得到不同的東西。在Firefox中,它要求我下載「test.aspx」文件,但表示它是0字節。在IE中它說有一個超時錯誤。 –

+0

如果系統提示您下載文件,那麼服務器返回錯誤的內容類型,這並沒有任何意義。無論哪種情況,您都不會看到任何錯誤消息? – CodingGorilla

回答

1

我看到您在使用本地代碼時未設置SMTP端口,而是在web.config中設置它。您是否嘗試過手動添加SMTP端口:

smtp.Port = 25; 

另外,您是否嘗試過手動設置EnableSsL屬性?

+0

我沒有嘗試設置端口(但不是默認端口?)。我確實嘗試了「EnableSsl」,但沒有幫助。 –

+0

是的,25是默認的端口,但是誰知道可能是什麼原因。在進入任何更復雜的事情之前,我總是先嚐試簡單的事情。 –

相關問題