2012-06-13 19 views
11

Il mio codice per l'invio di e-mail tramite SMTP di Gmail:Impossibile utilizzare SMTP di Gmail da Azure Service Cloud

SmtpClient client = new SmtpClient("smtp.gmail.com", 587); 
client.EnableSsl = true; 
client.UseDefaultCredentials = false; 
client.Credentials = new NetworkCredential("my_user_name", "my_password"); 

MailMessage message = 
    new MailMessage(new MailAddress("[email protected]"), new MailAddress("[email protected]")); 
message.Body = "body"; 
message.Subject = "subject"; 
client.Send(message); 

Il codice funziona sulla mia macchina locale e quando pubblico presso Azure come "Sito Web".

MA quando pubblico in un "Service Cloud" ottengo questa eccezione:

System.Net.Mail.SmtpException: The SMTP server requires a secure connection 
or the client was not authenticated. The server response was: 
5.5.1 Authentication Required. Learn more at 

C'è qualcosa che si differenziano un "sito Web" Windows Azure da un "Service Cloud" che potrebbe avere questo effetto?

Grazie!

risposta

8

Usa impostazioni seguenti SMTP in web.config:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
      <network defaultCredentials="false" enableSsl="true" host="smtp.gmail.com" port="587" userName="[email protected]" password="xxxxxxxxxxx"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

Penso che stiate passando credenziali sbagliate. Utilizzare il suffisso @ gmail.com il proprio nome utente e cercare di impostare la proprietà BodyHTML vero anche ...

Spero che questo funzionerà per voi .. E sempre in modo corretto a me .. commento

Check risposta nella this SO thread.

+0

Bingo! Il suffisso del nome utente con @ gmail.com ha fatto la differenza nell'app "Servizio cloud". – Cotten

+0

in realtà gmail accetta l'ID e-mail completo come nome utente o lo si configura in Outlook o in qualsiasi client. –

+0

sì forse, ma ha funzionato senza @ gmail.com in cassini e in Azure come "sito Web". Forse ero solo fortunato lì :) – Cotten

4

Sembra che la connessione venga rifiutata dal server SMTP perché non è abilitata SSL o le credenziali non sono corrette. Si avrebbe bisogno di credenziali di SSL e di rete di configurazione nel web.config, come di seguito:

<system.net> 
<mailSettings> 
    <smtp deliveryMethod="Network"> 
     <network enableSsl="true" host="smtp.gmail.com" port="25" userName="[email protected]" password="xxxxxxxxxxx"/> 
    </smtp> 
</mailSettings> 
</system.net> 

Maggiori informazioni sono disponibili in questa discussione SO: C# - Can't send mail in WIndows Azure via Gmail SMTP

0

Come detto prima il nome utente deve contenere "@ googlemail.com". Nel mio codice (java) sto usando la porta per inviare messaggi tramite google mail.

12

Ho riscontrato questo problema esatto. Tuttavia, ho riscontrato il problema indipendentemente dal fatto che stavo usando le impostazioni di configurazione <system.net> e stavo usando le credenziali, l'host, la porta, ecc.

Il problema era che Google stava rifiutando la richiesta di autenticazione che proveniva da Azzurro. Ho trovato questo accedendo all'account Gmail che stavo usando per il client SMTP nel mio codice. Una volta effettuato l'accesso all'account Gmail, ho notato un avviso di intestazione della barra rossa che diceva

Qualcuno ha effettuato l'accesso da una posizione non tipica del proprio account. Se non sei stato tu, cambia subito la password.

oltre al avvertimento, ho ricevuto una mail che diceva:

Recentemente qualcuno ha tentato di utilizzare un'applicazione per accedere al tuo account Google , [email protected] Abbiamo impedito il tentativo di accesso nel caso questo era un dirottatore che tentava di accedere al tuo account.Si prega di rivedere i dettagli della Tentativo di accesso:

  • Lunedi, 27 mese di agosto, 2012 22:33:59 GMT
  • Indirizzo IP: 168.62.48.183
  • Località: Stati Uniti

Se non si riconosce questo tentativo di accesso, qualcun altro potrebbe essere tentando di accedere al proprio account. È necessario accedere al proprio account e ripristinare la password immediatamente. Scopri come in http://support.google.com/accounts?p=reset_pw

Se questo si fosse, e si vuole dare questa applicazione di accedere al tuo account , completare i passaggi di risoluzione dei problemi elencati http://support.google.com/mail?p=client_login

Cordiali saluti, Il team di Google Account

Dopo aver seguito i passaggi elencati nel link fornito, il mio sito Web di Azure è riuscito ad accedere correttamente al mio account Gmail e utilizzare Gmail come client SMTP.

+0

FYI - È necessario accedere all'account Gmail che viene utilizzato dal codice. Ho ricevuto l'e-mail di "attività sospetta" su un account collegato e non ho potuto autorizzare l'indirizzo IP. – Jason

+0

Sei una leggenda! Dovevo accedere nuovamente al mio account Gmail, contrassegnare gli accessi sospetti come legittimi e andare su http://www.google.com/accounts/DisplayUnlockCaptcha. Questo l'ha risolto. – Henners

+0

sei un risparmiatore di vita GRAZIE! Mi sto strappando i capelli con questo per un paio d'ore. eeesh! –

Problemi correlati