Question

J'ai une norme compte Google Apps. J'ai installé un domaine personnalisé via Google Apps. Je suis en mesure d'envoyer et recevoir des e-mails avec succès via Google Apps lorsque j'utilise l'interface Gmail. Cependant, je veux envoyer un e-mail via le code. Pour tenter cela, je l'ai essayé le code suivant:

MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("someone@somewhere.com");
mailMessage.Subject = "Test";
mailMessage.Body = "<html><body>This is a test</body></html>";
mailMessage.IsBodyHtml = true;

// Create the credentials to login to the gmail account associated with my custom domain
string sendEmailsFrom = "emailAddress@mydomain.com";             
string sendEmailsFromPassword = "password";
NetworkCredential cred = new NetworkCredential(sendEmailsFrom, sendEmailsFromPassword);

SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
mailClient.EnableSsl = true;
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
mailClient.UseDefaultCredentials = false;
mailClient.Timeout = 20000;
mailClient.Credentials = cred;
mailClient.Send(mailMessage); 

Lorsque la méthode Send est atteinte, une exception est levée que les états:

  

"Le serveur SMTP requiert une sécurité   connexion ou le client n'a pas été   authentifié. La réponse du serveur   était:. 5.5.1 Authentification requise "

Comment puis-je envoyer des e-mails à travers mon domaine personnalisé via Google?

Merci!

Était-ce utile?

La solution

Il n'y a pas besoin de tous les paramètres de hardcode smtp dans votre code. Mettez-les dans web.config à la place. De cette façon, vous pouvez chiffrer ces paramètres si nécessaire et les changer à la volée sans recompiler votre application.

<configuration>
  <system.net>
    <mailSettings>
      <smtp from="example@domain.com" deliveryMethod="Network">
          <network host="smtp.gmail.com" port="587"
              userName="example@domain.com" password="password"/>
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

Fin lorsque vous envoyez un courriel activer simplement SSL sur votre SmtpClient:

var message = new MailMessage("navin@php.net");
// here is an important part:
message.From = new MailAddress("example@domain.com", "Mailer");
// it's superfluous part here since from address is defined in .config file
// in my example. But since you don't use .config file, you will need it.

var client = new SmtpClient();
client.EnableSsl = true;
client.Send(message);

Assurez-vous que vous envoyez email de la même adresse e-mail avec laquelle vous essayez d'authentifier à Gmail.

Remarque :. A partir de .NET 4.0, vous pouvez insérer EnableSSL = "true" dans web.config par opposition à la mise dans le code

Autres conseils

est ce que je l'utilise dans WPF 4

SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("sender_email@domain.tld", "P@$$w0rD");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;

try {
    MailAddress
        maFrom = new MailAddress("sender_email@domain.tld", "Sender's Name", Encoding.UTF8),
        maTo = new MailAddress("recipient_email@domain2.tld", "Recipient's Name", Encoding.UTF8);
    MailMessage mmsg = new MailMessage(maFrom.Address, maTo.Address);
    mmsg.Body = "<html><body><h1>Some HTML Text for Test as BODY</h1></body></html>";
    mmsg.BodyEncoding = Encoding.UTF8;
    mmsg.IsBodyHtml = true;
    mmsg.Subject = "Some Other Text as Subject";
    mmsg.SubjectEncoding = Encoding.UTF8;

    client.Send(mmsg);
    MessageBox.Show("Done");
} catch (Exception ex) {
    MessageBox.Show(ex.ToString(), ex.Message);
    //throw;
}

Surveillez les firewalls et anti-virus. Ces choses rampantes ont tendance à bloquer les applications envoyer des messages électroniques. J'utiliser McAfee Enterprise et je dois ajouter le nom de l'exécutable (comme Bazar. * Pour les Bazar.exe et Bazar.vshost.exe) pour pouvoir envoyer des courriels ...

changer le port 465

Il n'y a pas besoin de faire quoi que ce soit. Il suffit de vous connecter sur votre compte courant première fois et suivez les instructions.

Votre problème résoudra. Il se produit parce que vous aviez créé le compte dans les applications Google, mais ne pas se connecter. Il suffit de se connecter et suivez les instructions et essayer.

Mon code se connecte à l'aide smtp.google.com TLS sur le port = 587 (SSL doit être le port 465), mais a encore besoin EnableSSL = true

SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
NetworkCredential credentials = new NetworkCredential();
credentials.UserName = "INSERT EMAIL";
credentials.Password = "INSERT PASSWORD";
smtp.Credentials = credentials;

MailAddress addressFrom = new MailAddress(credentials.UserName);
MailAddress addressTo = new MailAddress("INSERT RECIPIENT");
MailMessage msg = new MailMessage(addressFrom, addressTo);
msg.Subject = "SUBJECT"
msg.Body = "BODY";

smtp.Send(msg);

Remarquez ces conditions préalables importantes sur votre compte G SUITE

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top