Me estreno en Foros del Web con este tema, y vengo aquí para quedarme... :)
Tengo un problema con una página web que he creado con un compañero. Queremos que al registrarte en nuestra página, el sistema envíe un mail de bienvenida al usuario mediante SMTP, con una cuenta de correo que creamos para ello. Para implementar esta funcionalidad hemos usado la librería PHPMailer.
Sin embargo cuando el usuario se registra satisfactoriamente, se muestra un mensaje en el que se muestra que la conexión con el servidor SMTP ha sido rechazada. No sabemos si es un problema de código o es que el hosting que usamos tiene capados los puertos de correo saliente (nos decantamos más por lo segundo, pero no lo tenemos claro).
Aquí adjunto el código que genera la conexión con el servidor, crea el correo y lo envía (por seguridad y privacidad, he puesto algunos asteriscos en algunos campos, en el código real están bien puestos).
Código PHP:
<?php
function sendMessage($email, $name, $surname, $password) {
$mail = new PHPMailer();
$mail->Mailer = "smtp";
$mail->Host = "smtp.1and1.es";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = "registration@*******.com";
$mail->Password = "*******";
$mail->From = "*******@*******.com";
$mail->FromName = "My page";
$mail->Subject = "Welcome to my page";
$mail->Body = "<p>Welcome to my page, </p>". $name.
"!<p>Your account has been created. Your e-mail is <b>" . $email .
"</b> and your password is <b>". $password . "</b></p>" .
"<p>Greetings.</p>";
$mail->AddAddress($email, $name . ' ' . $surname);
$mail->IsHTML(true);
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent.";
}
}
?>
Código PHP:
sendMessage($mail, $name, $surname, $pass);