He creado un formulario simple de contacto PHP que se supone que envía correo a través del script Swift-Mailer.Error de Swift-Mailer, "La dirección en el buzón dado [] no cumple con RFC"
El problema es que sigo recibiendo este error
Excepción no detectada 'Swift_RfcComplianceException' con mensaje de Dirección en el buzón dado [] no cumple con RFC 2822, 3.6.2. '
Supongo que significa que estoy usando una dirección de correo electrónico no válida. Pero dado que estoy usando [email protected] para probar el scrip el problema probablemente sea otro. Esta es mi configuración:
Cuando el correo se envía a:
$my_mail = '[email protected]';
$my_name = 'My Name';
El contenido del mensaje:
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
$date = date('d/m/Y H:i:s');
$ipaddress = $_SERVER['REMOTE_ADDR'];
$content = $message.'\n\nSent on: '.$date.' From: '.$ipaddress;
La función que utilizo para enviar el correo usando SwiftMailer:
function send_mail() {
require('/path/to/swift_required.php');
//The means of transport
$transport = Swift_SmtpTransport::newInstance('mail.mydomain.com', 25);
$transport->setUsername('myusername');
$transport->setPassword('mypass');
$mailer = Swift_Mailer::newInstance($transport);
//The message
$mail = Swift_Message::newInstance();
$mail->setSubject('Hello');
$mail->setFrom(array($email => $name));
$mail->setTo(array($my_mail => $my_name));
$mail->setBody($content, 'text/plain');
//Sending the message
$test = $mailer->send($mail);
if ($test) {
echo '<p>Thank you for contacting us '.$name.'! We will get in touch soon.</p>';
}
else {
echo '<p>Something went wrong. Please try again later.</p>';
}
}
Como puede ver, es una forma muy simple con tres campos, nombre, correo y mensaje. También tengo otra configuración de validación para cada uno de los campos de formulario de contacto, pero creo que es de poca importancia aquí.
Gracias por la ayuda.
Editar: Simplemente pruebe con el uso de gmail como el servidor smtp. Desafortunadamente todavía da los mismos resultados exactos.
Descarga el contenido de '$ email' y' $ my_email' después de que hayas hecho el trabajo de trim/htmlspecialchars/strip_tags y ve cómo son. El código del swift de serie se ve bien, por lo que posiblemente las direcciones se dañen antes de que lleguen a swiftmailer. –
Y elimine ambos, 'strip_tags' y' htmlspecialchars'. Esas dos funciones no están diseñadas para funcionar con direcciones de correo electrónico y nombres, sino con HTML. Creo que estás mezclando conceptos aquí. Haz una escapada adecuada, no escapando del cerebro muerto. ¡Sepa lo que hace y por qué! – hakre
@Marc_B Eso era lo que sospechaba también. Pero estaban en lo cierto ... Mi otra suposición es ¿podría el error referirse no a la dirección enviada sino a la dirección del receptor? Intentaré probar con una dirección de gmail como receptor y con el servidor smtp de gmail también ... – Maverick