2011-09-13 72 views
-5

我有Windows Vista和我檢查它沒有默認的虛擬smtp在其IIS中。密碼恢復控制無法發送郵件

我用端口25的本地主機發送密碼恢復控制的電子郵件,但它不起作用。

如何發送電子郵件?

我現在工作了。這裏是我的代碼:

PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e) 
{ 
    e.Cancel = true; 
    PasswordRecovery1.MailDefinition.BodyFileName = "~/password.txt"; 
    SmtpClient smtp = new SmtpClient(); 
    smtp.EnableSsl = true; 
    smtp.Send(e.Message); 
} 

<mailSettings> 
<smtp from="[email protected]"> 
<network host="smtp.gmail.com" port="587" userName="[email protected]" password="xxxxx"/> </smtp> 

</mailSettings> 

在password.txt文件,我寫了「你可以通過下面的登錄信息返回給該網站password.txt文件,我寫了」你可以通過下面的登錄信息返回到該網站。

<br>Username = <%Username%> </br> 
<br>Password = <%password%>" </br> 
+0

我們需要更多細節,究竟是什麼問題? –

+0

你會得到什麼例外?你是否檢查過IIS沒有監聽SMTP連接,你是否檢查過什麼_is_ listen?檢查您的SMTP服務器的日誌,看看它是否收到消息並以某種方式失敗(因此與C#應用程序無關)。 – David

+0

地獄的朋友,我做了很多搜索找到答案,並最終得到它。現在它工作正常。我沒有在系統上安裝任何免費的SMTP。相反,我使用smtp.gmail.com作爲服務器來發送郵件。 protected void PasswordRecovery1_SendingMail(object sender,MailMessageEventArgs e) e.Cancel = true; PasswordRecovery1.MailDefinition.BodyFileName =「〜/ password.txt」; SmtpClient smtp = new SmtpClient(); smtp.EnableSsl = true; smtp.Send(e.Message); } – user662417

回答

1

隨着提供的稀缺信息......我只能猜測你的開發郵件服務器設置不正確。如果您使用本地主機進行發送,那麼您將需要在本地IIS服務器上運行並配置smtp。你爲什麼要確定這是關閉的?

+0

我得到的錯誤是」沒有連接可以做,因爲目標機器積極拒絕d it 127.0.0.1:25「我搜索了很多這個錯誤,並得到了很多答案,例如1)端口25被阻止發送電子郵件2)嘗試使用gmail帳戶發送更多。我也嘗試過,但沒有奏效。我的SMTP沒有在IIS中配置,我猜是因爲當我在命令promt中運行telnet時,它顯示我連接失敗。我應該如何在我的IIS上使用OS vista配置SMTP以及如何發送電子郵件 – user662417

+0

發送到端口時沒有任何內容正在收聽或您的憑證被拒絕,這是一個常見錯誤消息。你說你確定本地IIS上的smtp已關閉,但你正嘗試通過本地主機發送電子郵件......你需要在本地主機上配置smtp。如果你google的話,有很多關於如何做到這一點的文章。 – iDevForFun

+0

我使用了以下代碼 \t \t user662417