使用多个主机发送电子邮件给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");
}

使用多个主机发送电子邮件给winform应用程序

第一个主机只依赖于发送方。因此,您可以将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电子邮件,因为雅虎的有一个技巧