mail - php enviar correo localhost
"Contraseña no aceptada del servidor: 535 Datos de autenticación incorrectos" al enviar con GMail y phpMailer (2)
Tengo el mismo script php ejecutándose en localhost: mi PC con XAMPP y en un servidor alojado. Funciona desde mi PC, pero no desde el servidor alojado.
Cuando lo envío desde el servidor alojado, obtengo el siguiente resultado:
SMTP -> ERROR: Password not accepted from server: 535 Incorrect authentication data
SMTP -> ERROR: RCPT not accepted from server: 550-Please turn on SMTP Authentication in your mail client, or login to the 550-IMAP/POP3 server before sending your message. dev.camppage.com 550-(patchvalues.com) [205.234.141.238]:50958 is not permitted to relay through 550 this server without authentication.
SMTP Error: The following recipients failed: [email protected] FAILED
Sospecho que hay una configuración que debe cambiarse en el servidor, pero no sé cuál. Cualquier consejo sería muy apreciado!
Aquí está el código:
function send_gmail ($recipients, $subject, $message, $attachment_filenames = array())
{
global $email_address, $email_password, $email_name;
require_once ($_SERVER[''DOCUMENT_ROOT'']. ''/php/PHPMailer/class.phpmailer.php'');
$body = $message;
$body = str_replace("//", '''', $body);
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing) 0 - none; 1 - errors & messages; 2 - messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Port = 465; // set the SMTP port
$mail->Username = $email_address; // GMAIL username
$mail->Password = $email_password; // GMAIL password
$mail->SetFrom($email_address);
$mail->FromName = $email_name;
$mail->AddReplyTo($email_address,$email_name);
$mail->Subject = $subject;
$mail->MsgHTML($body);
$mail->IsHTML(true); // send as HTML
if (isset ($recipients[0]))
{
foreach ($recipients AS $to)
{
$to_pieces = explode (",", $to, 2);
$to_email = trim ($to_pieces[0]);
if (isset ($to_pieces[1]))
$to_name = trim ($to_pieces[1]);
else
$to_name = " ";
$mail->AddAddress($to_email, $to_name);
}
$mail->IsHTML(true); // send as HTML
if ($mail->Send()){
return TRUE;
} else {
return FALSE;
}
}
else
{
return FALSE;
}
}
TIA
La solución fue habilitar SMTP salientes desde la configuración del servidor.
En los servidores que ejecutan WHM de cPanel, esto se encuentra en la sección "Configuración de Tweak" de WHM.
La opción es habilitar / deshabilitar - elija deshabilitar.
Advertencia: realizar este cambio redirigirá las conexiones SMTP salientes, lo que permitirá que las cuentas realicen conexiones directas, lo que puede aumentar las probabilidades de que su servidor esté en la lista negra.
esto está relacionado con WHM / cPanel , puede hacer lo mismo que en la respuesta anterior o desde shell escribiendo esto
/scripts/smtpmailgidonly off
deberías conseguir
"SMTP Mail protection has been disabled. All users may make outbound smtp connections."
más leyendo aquí https://forums.cpanel.net/threads/cant-enable-smtp-restrictions.360971/