我们使用sp_send_dbmail向包含敏感数据的客户端发送每月在SQL Server(2017)中生成的电子邮件。最近,有一个客户收到了他们不应该收到的东西。老实说,造成这种情况的原因只是糟糕的代码,但未来我们希望能够更有效地筛选邮件。我们现在通过要求客户登录我们的系统来查看这些数据来避免敏感数据问题。虽然这是完全正常的程序,但有些人要求在电子邮件中提供所有信息。这是一个安全问题,但是客户想要他们想要的,而老板想给客户他们想要的。
我们使用Outlook,它有一个发件箱,据我所知已经没有人真正使用它了。是否有一种方法可以让SQL Server将电子邮件放入共享发件箱帐户,以便我们可以在发送之前筛选包含敏感数据的电子邮件?
对于初始QA,包含警报的电子邮件数据通过存储过程生成,并发送给QA分析师进行检查。这是通过手动将发送给所有客户的电子邮件的收件人设置为QA分析师来完成的。
我们不期望他们覆盖每封邮件,因为那将是疯狂的,所以我们要求他们检查一个随机选择,以确保数据是准确的。
一旦他们满意,我们再次运行存储过程,但我们传递一个参数,以便它游遍包含每个客户端的每个电子邮件警报的表,并为每个客户端生成定制的电子邮件,并使用sp_send_dbmail发送。
换句话说,QA分析师筛选的电子邮件可能与发送给客户的电子邮件不同。这就是泄露发生的原因。
如果我们有办法将这些邮件放入共享发件箱,那么QA工作就可以在共享发件箱上完成,然后我们就可以发送邮件了。要求某人点击发送一大堆电子邮件仍然是一件痛苦的事情,但也许比再次被攻破要少一些。
AFAIKsp_send_dbmail
使用SMTP发送消息。如果您想将消息放置在特定邮箱的草稿(或任何其他)文件夹中,则需要使用Graph或EWS创建消息(不发送)。