如何证明电子邮件使我们的系统带有跟踪



我们有一个系统,该系统从SQL Server中的电子邮件队列表发送电子邮件。它从队列中读取一组未经记录,发送它们,然后通过发送的日期对其进行更新。

我们有一些用户抱怨他们没有收到电子邮件(尽管大多数用户的收益都很好(。记录已经在上面发送了日期,表明该过程在标记已发送之前,成功发送了所有电子邮件。如果遇到任何错误,那么记录就不会发送日期,因为这是过程中最后一件事。

但是,这一直被发送给我,"该程序不起作用!"因此,我希望能够证明特定的电子邮件已删除。我打开了.NET框架的System.NetSystem.Net.Sockets跟踪。我通过系统发送了一封测试电子邮件,并且看到它在跟踪文件中登录。但是,我在跟踪上没有看到任何实际显示它是用的电子邮件,对收件人地址,身体或任何事物的任何信息。

我希望像SMTP日志一样,显示Message X to recipient Y was successfully handed off to, and accepted by the server on such-and-such date/time.,以证明是的,您的电子邮件成功离开了我们的服务器;如果您没有收到它,则问题是来自我们的某个地方。,但我在跟踪日志中看不到这些信息。

我可以打开任何开关以提供此级别的信息吗?还是我可以解决这个问题?

使用.NET SMTPCLIENT类通过客户端的Office 365帐户发送消息。

这是我当前的跟踪设置...

<system.diagnostics>
    <trace autoflush="true" />
    <sources>
        <source name="System.Net" >
            <listeners>
                <add name="MyTraceFile"/>
            </listeners>
        </source>
        <source name="System.Net.Sockets">
            <listeners>
                <add name="MyTraceFile"/>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add 
            name="MyTraceFile"
            type="System.Diagnostics.TextWriterTraceListener"
            initializeData="F:TraceSystem.Net.trace.log" />
    </sharedListeners>
    <switches>
        <add name="System.Net" value="Verbose" />
        <add name="System.Net.Sockets" value="Verbose" />
    </switches>
</system.diagnostics>

如果发送电子邮件了,没有人会听到它,它仍然会发出声音吗?;(

看起来您探索了一些跟踪选项。但是,低技术的选项是将第二个收件人或BCC地址包括到您控制的邮箱中,然后您"在此处获得电子邮件"。如果该邮箱是偏离域的奖励点。

最新更新