我有以下邮件类:
public class Mail {
public List<MailFile> Files { get; set; }
public String Text { get; set; }
// Other properties
}
public class MailFile {
public Byte[] Data { get; set; }
public String Mime { get; set; }
public String Name { get; set; }
} // MailFile
Mail 包含一个文件列表,其中每个 MailFile 包含一个属性 Data,该属性包含 File 二进制数据。然后我使用 Mailer 发送电子邮件。
public class Mailer : IMailer {
private SmtpClient _client;
public Mailer() {
_client = new SmtpClient { UseDefaultCredentials = true };
} // Mailer
public void Send(Mail mail) {
using (MailMessage message = new MailMessage()) {
message.Text = mail.Text);
// Define other fields
foreach (MailFile file in mail.Files)
message.Attachments.Add(new Attachment(new MemoryStream(x.Data), x.Name, x.Mime)));
_client.Send(message);
};
} // Send
public void Dispose() {
Dispose(true);
} // Dispose
protected virtual void Dispose(Boolean disposing) {
if (disposing) {
if (_client != null)
_client.Dispose();
}
} // Dispose
} // Mailer
我将 MailMessage 包装在using
- 但在这种情况下,我是否需要处理邮件文件?
- 我的 Mail 和 Mail 文件不是由 GC 管理和处置吗?
- 也许我应该让 Mail 一次性并处理它的 MailFiles?
- 如果是,最好的方法是什么?