我正在实施电子邮件发送逻辑。这就是我要做的事情。
每当系统想要发送电子邮件构造MailMessage对象(包含所有细节)并将该对象保存在数据库中(作为字符串)而不是同时发送。在后台进程中,将拾取和处理这些已保存的电子邮件。
字符串将取自MailMessge.ToString()方法。
现在我的问题是,我无法看到从保存的字符串中获取MailMessage对象的方法。我不确定MailMessage类是否支持此功能。
我的第二个选项是将原始数据保存在排队表(to,subject,body等)中,并在发送时构造MailMessage对象。我更喜欢第一种选择,因为它看起来更整洁。
如果有人知道如何实现这一目标,请告诉我。
提前致谢, Wijitha
答案 0 :(得分:1)
MailMessage.ToString()不是选项。
为了在数据库或文件中存储任何对象Class需要使用Serializable标记,但遗憾的是,如果是MailMessage,则不会使用Serializable属性进行标记。
所以你必须选择第二选择。
如果您不想使用第二个选项,请创建可序列化版本的MailMessage类,以帮助您将数据存储在数据库中。稍后您将获得该对象并转换为mailmessage并发送电子邮件。
https://github.com/keyvan/Gopi/blob/master/Gopi/Gopi/SerializableMailMessage.cs