我们有一个系统,该系统从SQL Server中的电子邮件队列表发送电子邮件。它从队列中读取一组未经记录,发送它们,然后通过发送的日期对其进行更新。
我们有一些用户抱怨他们没有收到电子邮件(尽管大多数用户的收益都很好(。记录已经在上面发送了日期,表明该过程在标记已发送之前,成功发送了所有电子邮件。如果遇到任何错误,那么记录就不会发送日期,因为这是过程中最后一件事。
但是,这一直被发送给我,"该程序不起作用!"因此,我希望能够证明特定的电子邮件已删除。我打开了.NET框架的System.Net
和System.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地址包括到您控制的邮箱中,然后您"在此处获得电子邮件"。如果该邮箱是偏离域的奖励点。