2010-04-15 3 views
3

Envoi d'e-mails dans mon application C#. Je suis derrière un proxy - ce qui ne fait aucun doute que le code ne fonctionne pas. Voilà ce que j'ai jusqu'à présent:Envoi d'un e-mail via un proxy à l'aide de gmail smtp

App.Config:

<system.net> 
    <defaultProxy enabled="false"> 
     <proxy proxyaddress="xxx.xxx.xxx.xxx"/> 
    </defaultProxy> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
     <network host="smtp.gmail.com" port="587"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

code:

 var username = "..."; 
     var password = "..."; 

     var fromEmail = "..."; 
     var toEmail = "..."; 
     var body = "Test email body"; 
     var subject = "Test Subject Email"; 

     var client = new SmtpClient("smtp.gmail.com", 587) 
     { 
      Credentials = new NetworkCredential(username, password), 
      EnableSsl = true 
     }; 

     try 
     { 
      client.Send(fromEmail, toEmail, subject, body); 
     } 
     catch (Exception e) 
     { 
      MessageBox.Show(e.Message); 
     } 

Everytime I se System.Net.WebException: Le nom distant n'a pas pu être résolu: 'smtp.gmail.com'

Où/comment commencer à déboguer?

+0

Peut être répondre que vous cherchez est disponible à https://stackoverflow.com/questions/19446001/send-smtp-mail-from-gmail-live-aol-or-yahoo-accounts-when-my-pc- est-connecté-v/42719817 # 42719817 – dbw

Répondre

3

Vous avez raison de dire qu'être derrière un proxy empêcherait votre code de fonctionner. La solution n'est pas si simple. Il n'y a pas de "proxy SMTP" standard dont je suis conscient (comme il existe des proxies HTTP). Vous devriez utiliser un proxy SOCKS et trouver un client .NET pour cela - il n'y en a pas dans le framework .NET, mais si vous google ".NET SOCKS proxy" vous devriez être capable d'en trouver un. Cependant, il est assez improbable que votre réseau utilise un proxy SOCKS. Vous devrez peut-être renoncer à cela et simplement utiliser le serveur SMTP local.

+0

hmmm .... bien ça craint! – baron

8

Pour déboguer tout ce qui concerne le serveur client, telnet est votre ami.

Essayez dropping à DOS et en tapant:

telnet smtp.gmail.com 587 

Vous devriez voir:

220 mx.google.com ESMTP 20sm950596pzk.3 

Si vous ne le faites pas (vous obtenez un "ne peut pas se connecter" ou quelque), vous êtes définitivement bloqué.

Vous pouvez installer telnet à partir de vos programmes d'ajout/suppression sous 'Composants Windows', si vous ne l'avez pas installé.