次のメールクラスがあります。
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 には File バイナリ データを含むプロパティ Data が含まれています。次に、メーラーを使用してメールを送信します。
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
- しかし、この場合、メールファイルを破棄する必要がありますか?
- メールとメール ファイルは GC によって管理および破棄されませんか?
- Mail を使い捨てにして、その MailFiles を処分するべきではないでしょうか?
- はいの場合、それを行うための最良の方法は何ですか?