Я создал простую контактную форму PHP, которая должна отправлять почту через скрипт Swift-Mailer.
Проблема в том, что я продолжаю получать эту ошибку
Исключить исключение «Swift_RfcComplianceException» с сообщением «Адрес в почтовом ящике с данным [] не соответствует RFC 2822, 3.6.2.
Я думаю, что я использую неверный адрес электронной почты. Но поскольку я использую myaddress@gmail.com для проверки скрипта, проблема, вероятно, в другом месте. Это моя конфигурация:
Если почта отправляется:
$my_mail = 'mymail@mydomain.com'; $my_name = 'My Name';
Содержание сообщения:
$name = trim($_POST['name']); $email = trim($_POST['email']); $message = trim($_POST['message']); $date = date('d/m/YH: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-сервера. К сожалению, он по-прежнему дает точные результаты.
Все ваши переменные данных (адреса, имена …) кажутся глобальными. Глобальные переменные не могут быть прочитаны из функций, если вы не передадите их как параметры (рекомендуемый путь) или не используйте global
ключевое слово (или массив $GLOBALS
).