System.Net.Mail.MailMessage 从字符串加载

System.Net.Mail.MailMessage Load from a String

我正在实施电子邮件发送逻辑。这是我打算做的事情。

每当系统想要发送电子邮件时,构造 MailMessage 对象(包含所有详细信息)并将该对象保存在数据库中(作为字符串),而不是同时发送。从后台进程中,这些保存的电子邮件将被提取和处理。

字符串将从 MailMessge.ToString() 方法中获取。

现在我的问题是,我看不到从保存的字符串中取回 MailMessage 对象的方法。我不确定 MailMessage class 是否支持此功能。

我的第二个选择是将原始数据保存在排队的 table(收件人、主题、正文等)中,并在发送时构造 MailMessage 对象。我更喜欢第一个选项,因为它看起来更整洁。

如果有人知道如何实现这一点,请告诉我。

提前致谢, 维吉萨

  1. MailMessage.ToString() 不是选项。

  2. 为了在数据库或文件中存储任何对象 Class 需要标记为 Serializable 但遗憾的是 MailMessage 没有标记为 Serializable 属性。

  3. 所以你必须选择第二个选项。

如果您不想选择第二个选项,那么制作可序列化版本的 MailMessage class 可以帮助您将数据存储在数据库中。稍后您取回该对象并转换为邮件消息并发送电子邮件。

https://github.com/keyvan/Gopi/blob/master/Gopi/Gopi/SerializableMailMessage.cs