4

在我的系统中,我应该在查看我正在使用 DNN 的列表后发送通知邮件

有我使用的代码

private void SendEmailNotification()
    {
        DotNetNuke.Services.Mail.Mail.SendMail("mail@gmail.com", "mail@ymail.com", String.Empty, "URL Test", "this is a test of dnnmail: <a href='http://www.dotnetnuke.com'>DotNetNuke</a>", String.Empty, "html", String.Empty, String.Empty, String.Empty, String.Empty);
    }

函数调用是

SendEmailNotification();

但我没有收到任何邮件,,, 我做错了什么

4

3 回答 3

1

SendMail应该返回 a string,如果有错误,它会给出错误消息。您还可以检查事件查看器以查看那里是否记录了任何内容。您可以从主机设置页面的 SMTP 部分发送测试电子邮件吗?您的 SMTP 服务器设置是否允许以 gmail.com(或您实际发送的任何域)发送?

于 2012-02-15T14:41:08.683 回答
0

调用 SendMail 时,您使用的是站点主机设置部分的设置。如果信息不正确,您应该从此调用中获得异常。

因此,您可能需要检查事件查看器中是否有任何指示错误的内容。

此外,根据您使用的发件人/收件人地址,请务必检查垃圾邮件文件夹。

于 2012-02-15T15:46:45.213 回答
0

要添加到以前的答案...

DNN 将尊重 web.config 文件中的设置,因此即使在 CMS 中配置了 SMTP 设置,它们也可能会被忽略,具体取决于 web.config 中的内容。具体来说,如果在 web.config 中指定了拾取目录,如下面的代码片段所示,它将覆盖 CMS 中的设置。

<system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="C:\SMTPPickup" />
      </smtp>
    </mailSettings>
  </system.net>

如果您看到从发送功能返回的成功消息,但在收件箱中没有看到,则该消息可能位于拾取目录中,请仔细检查 web.config 以确保没有设置覆盖 CMS 中的设置。

对 bdukes 回答的一点更新,SMTP 设置和在 DNN 7+ 中测试电子邮件的功能现在可以在“管理”->“高级配置设置”区域中找到。

于 2014-05-14T17:47:42.960 回答