Nu se poate trimite e-mailuri de la serverul de producție folosind c # și gmail

Am testat acest cod în mediul meu de dezvoltare (Windows 7, studio vizuală 2010) și lucrează la grătar

public static bool SendMail(string to, string subject, string message)
{
    try
    {
        NetworkCredential loginInfo = new NetworkCredential("mylogin","mypassowrd");
        MailMessage msg = new MailMessage();
        msg.From = new MailAddress("mylogin");
        msg.To.Add(new MailAddress(to));
        msg.Subject = subject;
        msg.Body = message;
        msg.IsBodyHtml = true;
        SmtpClient client = new SmtpClient("smtp.gmail.com",587);
        client.EnableSsl = true;
        client.UseDefaultCredentials = false;
        client.Credentials = loginInfo;
        client.Send(msg);

        return true;
    }
    catch (Exception)
    {
        return false;
    }
}

Dar când îl mut pe serverul meu de producție (Windows Server 2008) nu funcționează. Gândurile mele inițiale au fost că paravanul de protecție blochează portul, așa că am creat o regulă de ieșire pentru a deschide portul 587 cu protocolul TCP. Botul asta nu funcționează.

Orice înțelegere va fi apreciată.

Mulțumiri

1
Mulțumesc, am fost serverul ISA. Doar creez o regulă privind ISA și funcționează.
adăugat autor roncansan, sursa
Ei bine, în loc să se întoarcă false ... înregistrați excepția, postați-l aici și vedeți dacă vă putem ajuta
adăugat autor Pleun, sursa
Furnizați mai multe informații despre motivul pentru care nu funcționează. Ai primit un mesaj de eroare?
adăugat autor Anders Abel, sursa

1 răspunsuri

Ați verificat că puteți ajunge la portul 587 pe smtp.gmail.com de la un alt instrument de pe server? Într-un mediu de producție există numeroase locuri în care un port poate fi filtrat - inclusiv firewall-uri și routere în rețea și nu numai firewall-ul de pe server.

O modalitate de a verifica conectivitatea în rețea a aplicației este să încercați să trimiteți o corespondență în aplicația dvs. și, în același timp, să executați comanda netstat -n pe consola serverului. Dacă conexiunea la smtp.gmail.com se blochează ca SYN_SENT nu este stabilită nicio conexiune TCP.

3
adăugat