Я пытаюсь отправить почту на локальный почтовый сервер. Я использую hMailServer в качестве почтового сервера, и я настроил его, как указано здесь:
Настройка сервера локальной почты (SMTP, POP3, IMAP) на XAMPP
Но когда я пытаюсь отправить почту, я получаю эту ошибку:
(!) Предупреждение: mail () [function.mail]: ответ SMTP-сервера: 550 Недопустимый адрес. в C: \ wamp \ www \ kariyersitem \ register.php в строке 161
Файлы журналов почтового сервера указывают на эту ошибку, как показано ниже:
"DEBUG" 3108 "2012-01-08 18:04:24.447" "Creating session 14" "SMTPD" 3108 14 "2012-01-08 18:04:24.448" "127.0.0.1" "SENT: 220 localhost ESMTP" "SMTPD" 1728 14 "2012-01-08 18:04:24.454" "127.0.0.1" "RECEIVED: HELO olcay-pc" "SMTPD" 1728 14 "2012-01-08 18:04:24.455" "127.0.0.1" "SENT: 250 Hello." "SMTPD" 3108 14 "2012-01-08 18:04:24.457" "127.0.0.1" "RECEIVED: MAIL FROM:<you@yourdomain>" "SMTPD" 3108 14 "2012-01-08 18:04:24.458" "127.0.0.1" "SENT: 550 The address is not valid." "SMTPD" 2040 14 "2012-01-08 18:04:24.459" "127.0.0.1" "RECEIVED: QUIT" "SMTPD" 2040 14 "2012-01-08 18:04:24.460" "127.0.0.1" "SENT: 221 goodbye" "DEBUG" 3392 "2012-01-08 18:04:24.461" "Closing TCP/IP socket" "DEBUG" 3392 "2012-01-08 18:04:24.462" "Ending session 14"
Я проверил адрес, и я уверен, что это правильно.
Может ли кто-нибудь сказать мне, в чем проблема?
Вот мой почтовый код:
$to = $frm_kadi; $subject = $site_title.' Üyelik Aktivasyonu'; $message = 'hello'; $headers = 'From: '.$contact."\r\n".'Reply-To: '.$contact."\r\n".'X-Mailer: PHP/'.phpversion(); $mresult = mail($to, $subject, $message, $headers);
Я проверил $contact
и написано как olcayertas@gmail.com
в файле config.php
. Перед отправкой почты я использую функцию эха для отладки моего кода, и это правильно.
В настоящее время моя переменная контакта $ задана так:
$contact = "olcayertas@gmail.com";
ОБНОВЛЕНИЕ 1
Установка sendmail_from
на olcayertas@gmail.com
в php.ini
поскольку @Jared Farrish предложил решить первую проблему. Но теперь у меня есть новая проблема:
"DEBUG" 3108 "2012-01-08 22:15:28.497" "Creating session 24" "SMTPD" 3108 24 "2012-01-08 22:15:28.498" "127.0.0.1" "SENT: 220 localhost ESMTP" "SMTPD" 3108 24 "2012-01-08 22:15:28.499" "127.0.0.1" "RECEIVED: HELO olcay-pc" "SMTPD" 3108 24 "2012-01-08 22:15:28.500" "127.0.0.1" "SENT: 250 Hello." "SMTPD" 4380 24 "2012-01-08 22:15:28.511" "127.0.0.1" "RECEIVED: MAIL FROM:<olcayertas@gmail.com>" "DEBUG" 4380 "2012-01-08 22:15:28.542" "Total spam score: 0" "SMTPD" 4380 24 "2012-01-08 22:15:28.547" "127.0.0.1" "SENT: 250 OK" "SMTPD" 3108 24 "2012-01-08 22:15:28.548" "127.0.0.1" "RECEIVED: RCPT TO:<olcayertas>" "SMTPD" 3108 24 "2012-01-08 22:15:28.548" "127.0.0.1" "SENT: 550 A valid address is required." "SMTPD" 2040 24 "2012-01-08 22:15:28.552" "127.0.0.1" "RECEIVED: QUIT" "DEBUG" 2040 "2012-01-08 22:15:28.552" "Deleting message file" "SMTPD" 2040 24 "2012-01-08 22:15:28.552" "127.0.0.1" "SENT: 221 goodbye" "DEBUG" 4380 "2012-01-08 22:15:28.555" "Closing TCP/IP socket" "DEBUG" 4380 "2012-01-08 22:15:28.556" "Ending session 24"
Похоже, что он не получает адрес назначения полностью. Я пытаюсь отправить почту себе, но он получает только имя пользователя olcayertas
и отсутствующий домен @gmail.com
.
ОБНОВЛЕНИЕ 2
Я решил вторую проблему. Это была моя ошибка.
ОБНОВЛЕНИЕ 3
Теперь я получаю эту ошибку:
"SENT: 530 SMTP authentication is required."
Но я уже заполнил параметры аутентификации SMTP в разделе « Settings->Ptotocols->SMTP->Delivery of e-mail->SMTP Relayer
. Server requires authentication
и Server requires authentication
Use SSL
.
ОБНОВЛЕНИЕ 4
Отключение Require SMPTP authentication
hMailServer в Settings->Advanced->IP Ranges->My Compter
решает проблему аутентификации SMTP.
Чтобы решить SENT: 550550 The address is not valid.
проблема, вы должны установить sendmail_from
в действительный почтовый адрес в файле php.ini
.
Для решения SENT: 530 SMTP authentication is required
, откройте администратор hMailServer. Перейдите в Настройки-> Дополнительно-> Диапазоны IP-> Мой счетчик. Отключите все параметры в разделе «Требовать авторизацию SMTP».
Кажется, что вы отправляете «отправитель» -получателя (From-Header) следующим образом: you@yourdomain
. yourdomain
– недопустимый домен. Измените это на действительный адрес электронной почты.
Вы используете you@yourdomain
как адрес From, и сервер отклоняет его.
Вместо этого используйте реальный адрес.
Я предполагаю, что $contact
<olcayertas@gmail.com>
и вот что вызывает проблему. Попробуйте изменить его на olcayertas@gmail.com
.
ХРАНИТЕ В РАЗУМ, каждый раз, после того, как вы измените php.ini,
читать обновленный php.ini
ps вам может потребоваться использовать ini_set("sendmail_from", "your_user@gmail.com");
в вашем php-скрипте, перед mail ();