通过多个主机向winform应用程序发送电

时间:2012-03-02 19:18:30

标签: c# winforms sendmail

我想从一个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");
}

1 个答案:

答案 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,因为有一个雅虎案例