c# - .NET SMTP mail-error=el comando helo rechazado necesita un nombre de host totalmente calificado
hostname fully-qualified-naming (2)
Cambia el nombre de host de una dirección IP a su nombre, por ejemplo, "smtp.provider.com" o si es interno "mailserver.domain".
ACTUALIZAR:
Intente leer este system.net.mail.smtpclient fqdn requerido y este el FQDN no se envía cuando envía un HELO o EHLO .
Estoy tratando de enviar correos electrónicos en una aplicación de consola .NET. Tengo un servidor SMTP con dirección IP XXXX (desinfectado para proteger a los inocentes).
El servidor SMTP se ha configurado (el relevo configurado) para permitir el correo electrónico desde el servidor que aloja la aplicación de consola .NET, y enviar ese correo electrónico al mundo exterior.
He probado esto con telnet desde el servidor que aloja la aplicación de la consola. Envié un correo electrónico con la consola de Telnet con éxito desde el servidor que aloja la aplicación de la consola utilizando la dirección IP del servidor SMTP. No se requiere autenticación cuando se usa telnet. No me han dado ninguna credencial de conexión.
Pero cuando intento hacerlo en la aplicación .NET, aparece el siguiente error:
Error de sintaxis, comando no reconocido. La respuesta del servidor fue: comando de Helo rechazado: necesita nombre de host completo
Aquí está mi código:
string mailMessagetest = "test";
string subjecttest = "test";
List<string> recipienttest = new List<string>();
recipienttest.Add("[email protected]");
utility.SendMail(recipienttest, subjecttest, mailMessagetest);
Aquí está la función SendMail:
public static void SendMail(List<string> recipient, string subject, string message)
{
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("[email protected]");
foreach (string to in recipient)
{
mailMessage.To.Add(to);
}
mailMessage.Subject = subject;
mailMessage.Body = message;
SmtpClient client = new SmtpClient();
client.Host = "X.X.X.X";
client.Port = 25;
client.Send(mailMessage);
}
Cree un usuario con contraseña en su servidor SMTP y luego aplique las siguientes configuraciones:
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("user", "pass");
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Port = 25;
smtp.EnableSsl = true; // or false depending your server