Ho creato un semplice modulo di contatto PHP che dovrebbe inviare posta tramite lo script Swift-Mailer.Errore Swift-Mailer, "Indirizzo nella cassetta postale fornito [] non conforme a RFC"
Il problema è che continuo a ricevere questo errore
eccezione Uncaught 'Swift_RfcComplianceException' con messaggio 'indirizzo nella casella postale dato [] non è conforme con la RFC 2822, 3.6.2.'
Che presumo significhi che sto usando un indirizzo e-mail non valido. Ma dal momento che sto usando [email protected] per testare lo scrip, il problema è probabilmente da qualche altra parte. Questa è la mia configurazione:
dove la posta viene inviata a:
$my_mail = '[email protected]';
$my_name = 'My Name';
Il contenuto del messaggio:
$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 funzione che uso per inviare la posta utilizzando 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>';
}
}
Come potete vedere è una forma molto semplice con tre campi, nome, mail e messaggio. Ho anche altre impostazioni di convalida per ciascuno dei campi dei moduli di contatto, ma penso che qui ci siano poche preoccupazioni.
Grazie per l'aiuto.
Modifica: Basta provare con l'utilizzo di gmail come server smtp. Sfortunatamente continua a dare gli stessi risultati esatti.
Scarta il contenuto di '$ email' e' $ my_email' dopo aver eseguito trim/htmlspecialchars/strip_tags e vedere come sono. Il codice swiftmailer sembra ok, quindi probabilmente gli indirizzi vengono manchiati da qualche parte prima che raggiungano swiftmailer. –
E rimuovere entrambi, 'strip_tags' e' htmlspecialchars'. Queste due funzioni non sono progettate per funzionare con indirizzi e-mail e nomi ma con HTML. Penso che tu stia mescolando concetti qui. Esegui una fuga corretta, non una fuga cerebrale. Sai cosa fai e perché! – hakre
@Marc_B Era quello che sospettavo anche io. Ma erano corretti ... La mia altra ipotesi è che l'errore potrebbe riferirsi non all'indirizzo inviato ma all'indirizzo del destinatario? Proverò a provare con un indirizzo Gmail come ricevitore e con il server smtp di Gmail ... – Maverick