Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建/生成一个';。eml';来自SQL Server dbmail的文件_C#_.net_Sql Server 2008_Eml - Fatal编程技术网

C# 创建/生成一个';。eml';来自SQL Server dbmail的文件

C# 创建/生成一个';。eml';来自SQL Server dbmail的文件,c#,.net,sql-server-2008,eml,C#,.net,Sql Server 2008,Eml,是否可以从SQL Server dbmail生成.eml文件?我正在运行SQLServer2008R2 我需要创建一个“电子邮件沙箱”,在将电子邮件发送到我们的SMTP服务器进行交付之前,将在其中暂存电子邮件。这将允许在最终交付之前查看和批准应用程序生成的电子邮件(希望是dbmail)。我可以在.NET中通过为SmtpClient对象指定“pickupDirectoryLocation”属性来实现这一点 问题:是否有一种方法可以通过SQL Server生成的电子邮件实现这一点 谢谢好问题!我从没

是否可以从SQL Server dbmail生成.eml文件?我正在运行SQLServer2008R2

我需要创建一个“电子邮件沙箱”,在将电子邮件发送到我们的SMTP服务器进行交付之前,将在其中暂存电子邮件。这将允许在最终交付之前查看和批准应用程序生成的电子邮件(希望是dbmail)。我可以在.NET中通过为
SmtpClient
对象指定“pickupDirectoryLocation”属性来实现这一点

问题:是否有一种方法可以通过SQL Server生成的电子邮件实现这一点


谢谢

好问题!我从没想过

嗯,当你调用send_dbmail proc时,你实际上并没有发送电子邮件。您只是在队列中插入一条记录,该记录将由发送电子邮件的数据库邮件进程(DatabaseMail.exe)读取

我不知道你想要的是否能实现,但我能想到一些事情:

  • 您可以使用带有参数AccountRetryDelay或DatabaseMailExeMinimumLifeTime(不确定,我从未尝试过)的sysmail\u configure\u sp来延迟流程运行的时间,以便经理有时间批准电子邮件(或在特定时间启用/禁用作业)。在此期间,您可以访问保存消息的表并对其进行编辑。但这并不能完全解决你的问题,这是一个相当丑陋的解决方案。更多信息

  • 创建一个中间表,在其中插入消息,在批准后,调用send_dbmail过程


  • 谢谢迭戈,选项2提供了各种可能性。我正在考虑一个解决方案:1.按照您的建议创建中间表。2.创建一个进程,该进程按计划扫描此表并手动生成.eml文件。3.还找到了这篇关于扩展MailMessage类以添加保存功能()4的文章。这将使我能够使用我们正在构建的内容来处理跨.NET SMTP和SQL Server的邮件审批。再次感谢你在正确的方向上所做的努力;0)