2012-03-02 4 views
1

다른 도메인 이름이나 gmail, yahoo, live 등과 같은 호스트에서 메일을 보내고 싶습니다. 하나의 winform 앱에서 보내주십시오. 첫 번째 호스트는 sender.So에 의해 의존winform apps with multiple host

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 야후 라이브 등의 ID를 가진다면 여러 호스트를 코딩하는 방법은 무엇입니까? 하나의 클라이언트에 대해서만 system.net.mail –

+0

나는 Gmail 사용자가 다른 도메인으로 메일을 보낼 수 있다는 점에서 하나의 창 응용 프로그램을 완료했습니다. 이제는 일반 코드를 원합니다. Gmail에서 내 ID를, 야후에서 친구 ID를 사용한다고 가정합니다.이 앱을 열면 메일이 쉽게 전송됩니다. Gmail에서 smtp가 전송되었지만 smtp가 야후와 일치하지 않기 때문에 전송되지 않았기 때문입니다. 그래서 당신은 저에게 일반적인 코드를 알려줍니다. –

+0

이것은 "gimme da codez"사이트가 아닙니다. 여기에 아무도 당신을 위해 당신의 일을하지 않을 것입니다. 귀하가 시도한 것을 보여 주시고 귀하가 갖고있는 문제점을 알려주십시오. 귀하가 문제를 해결할 수 있도록 기꺼이 도와 드리겠습니다. –

답변

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

위의 방법은 "세 가지 유명한"사람을 다루는 것, 또한 야후의 경우에 대한 트릭이 있기 때문에 선택적인 수동 호스트를 제공 할 수 있습니다.

+0

내 프로그램을 병합 할 수 있습니까? 나는 하나의 버튼과 그 뒤에 완전한 코드를 가지고있다. 코드를 –

+0

코드 –

+0

에 보내 주셔서 감사합니다. 호스트가 언급 & 포트는? 코드에서 정의하는 것이 강제적이지 않습니까? –