Прежде всего, мои извинения, если это дублирующий вопрос.Я много искал, но не смог найти связанных с этим проблем.
Так вот в чем проблема: я использую классы SmtpClient и MailMessage для отправки писем.Я передаю тему письма в качестве параметра в способ отправки почты.Первое время письмо отправляется с соответствующей темой (которую я отправил в качестве параметра).Тем не менее, во всех следующих письмах, независимо от того, какую тему я указывал, тема остается неизменной (та, которая использовалась впервые)Тема устанавливается изнутри метода.
(Примечание. Это приложение WindowsForm)
Я попытался создать другой метод с именем «Refresh ()», который удаляет почту.объект и создает его снова (только с from и to info).И вызывайте этот метод каждый раз после отправки письма.Но это не помогает с этой проблемой.
Коды приведены ниже:
Поля:
MailMessage message;
SmtpClient mailer;
string from = "sender email";
string pass = "sender pass";
string to = "rec email";
Конструктор:
try
{
message = new MailMessage(from, to);
mailer = new SmtpClient("smtp.gmail.com", 587);
mailer.Credentials = new NetworkCredential(from, pass);
mailer.EnableSsl = true;
}
catch(Exception ex) { /*code to write log*/ }
ОбновитьМетод:
void RefreshMessage()
{
try
{
message.Subject = "";
message.Dispose();
message = new MailMessage(from, to);
}
catch(Exception ex) { /*write log*/ }
}
Метод отправки почты:
internal void TextOnly(string sub, string bodyMessage)
{
try
{
message.Subject = sub;
message.Body = bodyMessage;
mailer.Send(message);
this.RefreshMessage();
}
catch (Exception ex) { /*write log*/ }
}
Пример того, как это называется:
m.TextOnly("Subject 1" , SomeStringMethod());
m.TextOnly("Another Title " + anyString, "Some string mail");
m.TextOnly("[TAG] Email subject goes here" , AnotherStringMethod());
Теперь, независимо от того, какая тема отправляется вПараметр всегда отправляется с темой «Тема 1» (из приведенного выше примера).Тело сообщения в порядке, только тема неверна.
У меня есть несколько других методов в классе (для других целей, например, для отправки писем с вложениями), где тема не передается в качестве параметрано он устанавливается непосредственно из метода (например, message.Subject = "Example Sub"
из метода), в этом случае он работает нормально.
Но в случае выше, когда субъект передается методу, субъект остаетсято же самое.