我想从一个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");
}
答案 0 :(得分:1)
第一个主机仅依赖于发件人。因此,您可以将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;
}
方法将处理“三个着名”方法,此外,您可以通过表单中的文本框为用户提供可选的手动主持人,请检查Send smtp email,因为有一个雅虎案例