簡體   English   中英

來自ASP.NET的SMTP電子郵件

[英]SMTP Email from ASP.NET

我有一個asp.net 4.0網站,該網站根據整個網站上的幾個不同事件生成電子郵件警報。 我在App_Code文件夾中的Utility.cs類中使用以下代碼。 主題,正文和mailto是傳遞給方法的參數。

try
{
    var mailmessage = new MailMessage();
    mailmessage.From("admin@xxxxxx.com");
    mailmessage.To.Add(new MailMessage(mailTo));
    mailmessage.ReplyTo("no-reply@xxxxxx.com");
    mailmessage.Subject = subject;
    mailmessage.Body = body;
    mailmessage.IsBodyHtml = true;
    var smtpClient = new SmtpClient();
    smtpClient.Send(mailmessage);
}
catch (Exception smtpEx)
{// write to windows event log}

還有我的web.config

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network" from="no-reply@xxxxxx.com">
        <network host="xxx.xxx.xxx.xxx" port="25" defaultCredentials="true"/>
      </smtp>
    </mailSettings>
  </system.net>

這些電子郵件從未收到。 但是有趣的是,當我使用“忘記密碼”功能時,我確實收到了電子郵件。 該功能是使用PasswordRecovery控件實現的,其用法如下。

<asp:PasswordRecovery ID="xxx" Visible="false" runat="server"></asp:PasswordRecovery> 

我根本沒有設置任何MailDefinition屬性,這使我假定它正在使用我的web.config設置,因此為什么此控件可以使用這些設置,但我的c#代碼卻不能。 我猜可能是我的郵件?

感謝您可以提供的任何幫助。

謝謝!

我想通了-很抱歉浪費你們的時間。 那只是一個現場,我讓才智發揮了我的最大作用。

mailmessage.To.Add(新的MailMessage (mailTo));

應該讀

mailmessage.To.Add(新的MailAddress (mailTo));

很高興它解決了,但不知道我怎么想念它。

這些電子郵件是什么樣的? 它們可能會被當作垃圾郵件殺死,尤其是因為您是以HTML格式發送它們(垃圾郵件過濾器會為鏈接,圖像等提供很多命中率)。 默認情況下,密碼恢復控件發送純文本。 您是否嘗試過運行上述代碼以手動方式將消息發送為純文本格式?

有一種可能性,即您的電子郵件服務器不喜歡的“從”的“admin@xxxxxx.com”地址(在你的代碼中指定),但它確實像“發件人”地址的“no-reply@xxxxxx.com” (在您的web.config中指定)。

驗證您的電子郵件服務器已設置為有效的電子郵件地址。 同樣,很多時候電子郵件服務器會驗證發件人地址的域實際上是從您發送的IP地址發起的。 您可以在DNS中設置SPF記錄,該記錄將告訴電子郵件服務器該域是來自WXYZ IP地址的有效發件人。

檢查此帖子可能的問題。

必需的System.Net.mail.SmtpClient FQDN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM