Я создал простую форму контакта с PHP, которая должна отправлять почту через скрипт Swift-Mailer.Ошибка Swift-Mailer, «Адрес в почтовом ящике указан [] не соответствует RFC«
Проблема я получаю эту ошибку
Uncaught исключение 'Swift_RfcComplianceException' с сообщением "Адрес в почтовом ящике с учетом [] не соответствует RFC 2822, 3.6.2.
Возможно, я использую неверный адрес электронной почты. Но поскольку я использую [email protected] для проверки скрипта, проблема, вероятно, в другом месте. Это моя конфигурация:
Если почта отправляется на:
$my_mail = '[email protected]';
$my_name = 'My Name';
Содержание сообщения:
$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;
Функция я использовать для отправки почты с помощью 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>';
}
}
Как вы можете видеть, это действительно простая форма с тремя полями, именем, почтой и сообщением. У меня также есть другая проверка, настроенная для каждого поля контактной формы, но я думаю, что здесь это малоинтересно.
Благодарим за помощь.
Редактировать: Просто проверьте с использованием gmail как сервера smtp. К сожалению, он по-прежнему дает точные результаты.
Сбросить содержимое '$ email' и' $ my_email' после того, как вы выполнили свою работу trim/htmlspecialchars/strip_tags и посмотрите, как они выглядят. Сам код swiftmailer выглядит нормально, поэтому, возможно, адреса становятся искалеченными где-то, прежде чем они достигнут swiftmailer. –
И удалите как 'strip_tags', так и' htmlspecialchars'. Эти две функции не предназначены для работы с адресами и именами электронной почты, но с HTML. Я думаю, вы смешиваете концепции здесь. Делайте правильное выживание, а не вымирание мозга. Знайте, что вы делаете и почему! – hakre
@Marc_B Вот что я и подозревал. Но они были правильными ... Мое другое предположение, может ли ошибка ссылаться не на отправленный адрес, а на адрес получателя? я попробую попробовать с адресом gmail в качестве получателя и с gmail smtp-сервером, а также ... – Maverick