2012-03-14 47 views
1

設置elmah對我來說是相對無痛的。直到我嘗試使用電子郵件工具。我已經閱讀了關於這個主題的所有以前的問題,但只是無法完成。這裏是我的web.config文件中的相關條目。這只是我做過的很多嘗試之一,這個嘗試是使用gmail和。我究竟做錯了什麼?elmah - 無法通過電子郵件發送異常

<elmah> 
    <errorMail 
    from="[email protected]" 
    to="[email protected]" 
    subject="elmah exception" 
    async="true" 
    smtpPort="0" 
    useSsl="true" /> 
</elmah> 
<system.net> 
    <mailSettings> 
    <smtp deliveryMethod ="Network"> 
     <network 
     host="smtp.gmail.com" 
     port="587" 
     userName="[email protected]" 
     password="..." /> 
    </smtp> 
    </mailSettings> 
</system.net> 
<httpModules> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
</httpModules> 

編輯 只是爲了證明的設置,我已經設法成功地從我的應用程序使用Gmail發送電子郵件。使用的設置是相同的,但我仍然無法讓elmah發送電子郵件。她是代碼片段。

MailMessage mailObj = new MailMessage(); 
    mailObj.Subject = "gmail test"; 
    mailObj.From = new System.Net.Mail.MailAddress("[email protected]"); 
    mailObj.To.Add("[email protected]"); 
    mailObj.Body = "Test Email"; 

    SmtpClient smtpClient = new SmtpClient("smtp.gmail.com"); 
    NetworkCredential basicCredential = new NetworkCredential("[email protected]", "mypassword"); 
    smtpClient.UseDefaultCredentials = false; 
    smtpClient.Credentials = basicCredential; 
    smtpClient.Port = 587; 
    smtpClient.EnableSsl = true; 
    smtpClient.Send(mailObj); 

甚至一些確認它看起來正確的將是有用的。

+0

您在/ elmah/errorMail元素中拼寫錯誤'smtpPort',並且端口0在那裏可能不正確。 – 2012-03-14 03:49:11

+0

謝謝你指出我的閱讀障礙,我會編輯原文。不幸的是,即使它拼寫正確,它仍然無法正常工作。通過設置smtpPort =「0」,它顯然使用部分中指定的端口。我試過顯式設置端口爲587的選項,但它仍然不起作用。 – crackles 2012-03-14 05:00:50

回答

0

端口爲465,協議爲SSL。

+0

感謝您的建議,但465不適用於我。我已經設置SSL與useSsl =「true」 – crackles 2012-03-15 03:37:13

+0

你可以嘗試按照本指南,我不熟悉elmah,所以我不知道這是否會爲你工作。祝你好運http://scottonwriting.net/sowblog/archive/2009/05/21/163350.aspx此外,如果您使用的是谷歌應用程序域,您必須將其設置爲允許外部smtp中繼管理cp。 – icomrade 2012-03-19 04:13:10

0

您是否認爲GMail的雙因素身份驗證有任何不良影響?我只是遇到了這個問題,併爲我的開發工作創建了一個特定於應用程序的密碼。