【问题标题】:Error when sending email发送电子邮件时出错
【发布时间】:2013-07-14 00:58:17
【问题描述】:

我编写了一个 ASP.NET 来每 12 小时发送一次 SMTP 邮件。它在我的办公室服务器上运行良好,但是当我在我的客户端服务器上运行该解决方案时,它显示错误“远程证书无效根据验证程序”。会出现什么问题以及解决方案是什么?

【问题讨论】:

  • 它不会“显示错误”,它会引发异常。请发布完整的例外情况。
  • 客户端是否为其邮件服务器使用自签名证书?其中一个最有可能是问题所在:stackoverflow.com/a/9983342/264607

标签: asp.net error-handling smtp email-validation


【解决方案1】:

已经有几个问题了

(关于检查内容的很好的反馈) The remote certificate is invalid according to the validation procedure

(在非 prod 上运行以获取过去错误的代码) "The remote certificate is invalid according to the validation procedure." using Gmail SMTP server

(附加信息)The remote certificate is invalid according to the validation procedure

如果这些不起作用

尝试在服务器上添加证书

  1. 将证书保存到您需要添加 证书也。
  2. 开始 -> 运行 -> MMC 这将打开 Microsoft 管理控制台
  3. 转到文件 -> 添加/删除管理单元... 选择 来自可用管理单元的证书:框,然后单击添加 >
  4. 您将拥有三个选项(用户、服务、计算机),选择计算机 帐户并点击下一步>。点击完成关闭对话框,然后确定 关闭管理单元对话框
  5. 右键单击受信任的根证书 权限 -> 所有任务 -> 导入...
  6. 点击下一步>,浏览证书,然后点击下一步,直到对话框关闭并且您有 已成功添加证书。

运行跟踪以查看错误消息

将以下内容添加到您的 web.config。 (取自here

<system.diagnostics>
    <trace autoflush="true" />
            <sources>
            <source name="System.Net">
                    <listeners>
            <add name="System.Net"/>
                    </listeners>
            </source>
            <source name="System.Net.HttpListener">
                    <listeners>
            <add name="System.Net"/>
                    </listeners>
            </source>
    <source name="System.Net.Sockets">
                    <listeners>
            <add name="System.Net"/>
                    </listeners>
            </source>
    <source name="System.Net.Cache">
                    <listeners>
            <add name="System.Net"/>
                    </listeners>
            </source>
            </sources>
    <sharedListeners>
            <add
             name="System.Net"
             type="System.Diagnostics.TextWriterTraceListener"
              initializeData="System.Net.trace.log"
             traceOutputOptions = "ProcessId, DateTime"
            />
    </sharedListeners>
<switches>
    <add name="System.Net" value="Verbose" />
    <add name="System.Net.Sockets" value="Verbose" />
    <add name="System.Net.Cache" value="Verbose" />
    <add name="System.Net.HttpListener" value="Verbose" />
</switches>
</system.diagnostics>

这将使您更仔细地了解问题所在。 IE。名称不匹配等。请务必将 initializeData="System.Net.trace.log" 更改为您的日志位置,并确保网络服务具有 r/w 访问权限。

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多