switch (host) // host - это string переменная которая получается в результате парсинга аккаунта почты.
{
case "@mail.ru":
smtp = new SmtpClient("smtp.mail.ru", 587);
break;
case "@yahoo.co":
smtp = new SmtpClient("smtp.mail.yahoo.com", 465);
_smtp = new SmtpClient("smtp.mail.yahoo.com", 587); // _smtp использую потому что на сайтах где я смотрел настройки для smtp, было несколько портов. Сначала отправляю на 1-ый порт, если ошибка - на второй.
break;
case "@gmx.at":
smtp = new SmtpClient("smtp.gmx.com", 587);
_smtp = new SmtpClient("smtp.gmx.com", 465);
break;
case "@aol.com":
smtp = new SmtpClient("smtp.aol.com", 465);
_smtp = new SmtpClient("smtp.aol.com", 587);
break;
case "@hotmail.com":
smtp = new SmtpClient("smtp.live.com", 465);
_smtp = new SmtpClient("smtp.live.com", 587);
break;
case "@live.com":
smtp = new SmtpClient("smtp.live.com", 465);
_smtp = new SmtpClient("smtp.live.com", 587);
break;
case "@twc.com":
smtp = new SmtpClient("mail.twc.com", 465);
_smtp = new SmtpClient("mail.twc.com", 587);
break;
case "@roadrunner.com":
smtp = new SmtpClient("mail.twc.com", 465);
_smtp = new SmtpClient("mail.twc.com", 587);
break;
// и т.д.
}
MailAddress from = new MailAddress(login, name);
MailAddress to = new MailAddress(listTo[index]);
MailMessage m = new MailMessage(from, to);
m.Subject = TBSubject.Text;
m.Body = message;
try
{
smtp.Credentials = new NetworkCredential(login, password);
smtp.EnableSsl = true;
smtp.Send(m);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
_smtp.Credentials = new NetworkCredential(login, password);
_smtp.EnableSsl = true;
_smtp.Send(m);
}
class SmtpSetting
{
public string Host {get; set;}
public string Server {get; set;}
public string Port {get; set;}
}
var smptSettings = new List<SmptSetting>
{
new SmptSetting
{
Host = "mail.ru",
Server = "smtp.mail.ru",
Port = 587
},
new SmptSetting
{
Host = "yahoo.co",
Server = "smtp.yahoo.co",
Port = 465
},
...
}
var currentSmtp = smptSettings.FirstOrDefault(x => x.Host == host);
if(currentSmtp != null)
{
var smtp = new SmtpClient(currentSmtp.Server, currentSmtp.Port);
}
MailMessage
есть настройка IsBodyHtml
, установите ее в true.