Нет, CustomMessage
наследует базовые Dispose()
и Dispose(bool)
методы. Ему не нужно переопределять их, если только он не должен выполнять некоторые дополнительные действия самостоятельно.
Я только что заметил, что вы используете System.Net.Mail.MailMessage. Не. Он устарел, и сама Microsoft настоятельно рекомендует не использовать его.
Альтернатива пользовательскому сообщению
В любом случае лучше написать метод расширения для добавления нескольких получателей, чемсоздание нового класса сообщений. Вы можете создать что-то подобное в MimeKit, предлагаемой замене для SmtpClient:
static public void AddRecipients(this MimeMessage message,IEnumerable<string> addresses)
{
var ads=addresses.Select(ad=>MailboxAddress.Parse(ad));
message.To.AddRange(ads);
}
Или это для SmptClient
static public void AddRecipients(this MailMessage message,IEnumerable<string> addresses)
{
foreach (var address in addresses)
{
message.To.Add(address);
}
}
SmptClient устарел
Я только что заметил, что вы используете System.Net.Mail.MailMessage. Не. Сама Microsoft предостерегает от использования SmptClient в очень сильно отформатированном предупреждении, в самом верху страницы документа SmptClient:
Warning
Этот API теперь устарел.
На самом деле вы уже должны получать предупреждение компилятора:
SmtpClient и его сеть типов плохо спроектированы, мы настоятельно рекомендуем вамиспользуйте https://github.com/jstedfast/MailKit и https://github.com/jstedfast/MimeKit вместо
Вы должны изменить свой код, чтобы использовать MailKit. Вам, возможно, не придется создавать собственное сообщение.
API похож на SmptClient для простых случаев, и есть даже операция приведения из System.Net.Mail.MailMessage
к собственному MimeKit MimeMessage
, чтобы упростить переход.
Пример с целевой страницы Gitub MailKit показывает, насколько просто им пользоваться
var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("Joey Tribbiani", "joey@friends.com"));
message.To.Add (new MailboxAddress ("Mrs. Chanandler Bong", "chandler@friends.com"));
message.Subject = "How you doin'?";
message.Body = new TextPart ("plain") {
Text = @"Hey Chandler,
I just wanted to let you know that Monica and I were going to go play some paintball, you in?
-- Joey"
};
using (var client = new SmtpClient ()) {
// For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
client.ServerCertificateValidationCallback = (s,c,h,e) => true;
client.Connect ("smtp.friends.com", 587, false);
// Note: only needed if the SMTP server requires authentication
client.Authenticate ("joey", "password");
client.Send (message);
client.Disconnect (true);
}