2012-03-02 9 views
1

Gmail、yahoo、liveなどの異なるドメイン名またはホスト上のメールをone winform appsから送信します。複数のホストを持つwinformアプリケーション

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

誰もがGmailのyahooライブなどのidを持っていると仮定し、複数のホストをコードする方法? 1つのクライアントのsystem.net.mail –

+0

を参照してください、私はGmailのユーザーだけが他のドメインにメールを送信できるということで1つのウィンドウのアプリケーションを行っている。今、私は一般的なコードを望んでいる:私はこのアプリを開いてメールを簡単に送信されるので、Gmailのsmtpが私の友人のメールは、smtpのために送信されないため、yahooと一致しないため、あなたはそれのための一般的なコードを教えてください –

+0

これは "gimme da codez"サイトではありません。誰もあなたのためにあなたの仕事をしません(あなたがそれらを支払っていない限り)。あなたが試したことを私たちに示し、あなたが持っていた問題を教えてください。問題を解決するのを手伝ってうれしいです。 –

答えて

1

まずホストは、あなたが使用する必要がありますどのようなホストtxt_from.Text今までに解析することができますsender.Soによってのみに依存:

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; 
     } 

上記方法は、「3有名な」ものを扱います、さらに Yahooのケースのためのトリックがあるので、あなたのユーザーにオプションの手動ホストを提供することができます

+0

あなたのプログラムを私とマージできますか? 私はその上に1つのボタンと完全なコードを持っています。ですので、すべてのコードをマージしてください –

+0

コード –

+0

のおかげでありがたいです。 ホストは言及しています&ポートはどうですか?コードで定義することは義務ではありませんか? –

関連する問題