form - Enviar correo electrónico a través de C#a través de la cuenta de Google Apps
send email c# gmail (5)
Esto es lo que uso en WPF 4
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("[email protected]", "P@$$w0rD");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try {
MailAddress
maFrom = new MailAddress("[email protected]", "Sender''s Name", Encoding.UTF8),
maTo = new MailAddress("[email protected]", "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;
}
Esté atento a los Firewalls y Anti-Virus. Estas cosas escalofriantes tienden a bloquear las aplicaciones que envían correos electrónicos. Uso McAfee Enterprise y tengo que agregar el nombre del ejecutable (como Bazar. * Para Bazar.exe y Bazar.vshost.exe) para poder enviar correos electrónicos ...
Tengo una cuenta estándar de Google Apps. Configuré un dominio personalizado a través de Google Apps. Puedo enviar y recibir correos electrónicos exitosamente a través de Google Apps cuando uso la interfaz de Gmail. Sin embargo, quiero enviar un correo electrónico a través del código. Para intentar esto, he estado intentando el siguiente código:
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("[email protected]");
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 = "[email protected]";
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);
Cuando se alcanza el método Send, se lanza una excepción que dice:
"El servidor SMTP requiere una conexión segura o el cliente no fue autenticado. La respuesta del servidor fue: 5.5.1 Autenticación requerida".
¿Cómo envío correos electrónicos a través de mi dominio personalizado a través de Google?
¡Gracias!
Mi código se está conectando a smtp.google.com con TLS en Puerto = 587 (SSL debería ser el puerto 465) pero aún necesita 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);
Tenga en cuenta estos importantes requisitos previos en su cuenta G SUITE
- Asegúrese de que el nombre de usuario que utiliza haya borrado la prueba de verificación de palabras de CAPTCHA que aparece cuando inicia sesión por primera vez.
- Asegúrese de que la cuenta tenga una contraseña segura: https://support.google.com/accounts/answer/32040
- Asegúrate de que las aplicaciones menos seguras estén habilitadas para la cuenta deseada- https://support.google.com/a/answer/6260879
No hay necesidad de codificar todas las configuraciones smtp en su código. Póngalos en web.config en su lugar. De esta forma, puede encriptar estas configuraciones si es necesario y cambiarlas sobre la marcha sin volver a compilar su aplicación.
<configuration>
<system.net>
<mailSettings>
<smtp from="[email protected]" deliveryMethod="Network">
<network host="smtp.gmail.com" port="587"
userName="[email protected]" password="password"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Finalice cuando envíe un correo electrónico, simplemente habilite SSL en su SmtpClient:
var message = new MailMessage("[email protected]");
// here is an important part:
message.From = new MailAddress("[email protected]", "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);
Asegúrese de enviar un correo electrónico desde la misma dirección de correo electrónico con la que intenta autenticar en Gmail.
Nota : Comenzando con .NET 4.0 puede insertar enableSsl = "true" en web.config en lugar de configurarlo en el código.
No hay necesidad de hacer nada. Simplemente inicie sesión en su cuenta actual por primera vez y siga las instrucciones.
Tu problema se resolverá Ocurre porque creó la cuenta en las aplicaciones de Google pero no inició sesión. Simplemente inicie sesión y siga las instrucciones y pruebe.
cambia el puerto a 465