使用多个主机发送电子邮件给winform应用程序
本文关键字:电子邮件 winform 应用程序 主机 | 更新日期: 2023-09-27 18:26:33
我想从一个winform应用程序在不同域名或主机上发送邮件,如gmail、yahoo、live等。
try
{
MailMessage mail = new MailMessage(txt_from.Text, txt_to.Text, txt_subject.Text, txt_message.Text);
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Port = 587;
client.Credentials = new System.Net.NetworkCredential(txt_username.Text, txt_password.Text);
client.EnableSsl = true;
client.Send(mail);
MessageBox.Show("Mail Sent !");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Gmail Sender");
}
第一个主机只依赖于发送方。因此,您可以将txt_from.Text
解析为现在需要使用的主机:
private string GetHost(string SenderEmailAddress)
{
string host = "";
try
{
if (SenderEmailAddress.Contains("@gmail."))
host = "smtp.gmail.com";
else if (SenderEmailAddress.Contains("@live.") || SenderEmailAddress.Contains("@hotmail."))
host = "smtp.live.com";
else if (SenderEmailAddress.Contains("@yahoo."))
host = "smtp.mail.yahoo.com";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return host;
}
上面的方法将处理"三个著名的"主机,此外,您可以通过表单中的文本框为用户提供一个可选的手动主机,选中发送smtp电子邮件,因为雅虎的有一个技巧