Отправка почты на локальный почтовый сервер - «Отправлено: 550 Адрес недействителен». - PullRequest
9 голосов
/ 08 января 2012

Я пытаюсь отправить почту на мой локальный почтовый сервер. Я использую 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 и в моем файле config.php написано olcayertas@gmail.com. Перед отправкой почты я использую функцию эха для отладки моего кода, и это правильно.

В настоящее время моя переменная $ contact установлена ​​на:

$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 и Use SSL.

ОБНОВЛЕНИЕ 4

Отключение Require SMPTP authentication параметров hMailServer в Settings->Advanced->IP Ranges->My Compter решило проблему аутентификации SMTP.

Ответы [ 5 ]

12 голосов
/ 09 января 2012

Чтобы решить проблему SENT: 550550 The address is not valid., вы должны установить для sendmail_from правильный почтовый адрес в файле php.ini.

Чтобы решить проблему SENT: 530 SMTP authentication is required, откройте hMailServer Administrator. Перейдите в Настройки-> Дополнительно-> Диапазоны IP-> Мой компьютер. Отключите все параметры в разделе «Требуется SMTP-аутентификация».

3 голосов
/ 08 января 2012

Похоже, что вы отправляете электронное письмо отправителя (From-Header) следующим образом: you@yourdomain.yourdomain является недействительным доменом.Измените это на действительный адрес электронной почты.

1 голос
/ 08 января 2012

Вы используете you@yourdomain в качестве адреса отправителя, и сервер отклоняет его.
Вместо этого используйте реальный адрес.

0 голосов
/ 17 сентября 2013

ПРОДОЛЖАЙТЕ НАМ, каждый раз, после того как Вы измените php.ini,

вам нужно перезапустить wamp (!!!)

чтобы прочитать обновленный php.ini

p.s. вам может понадобиться использовать ini_set("sendmail_from", "your_user@gmail.com"); в вашем php-скрипте перед mail ();

0 голосов
/ 08 января 2012

Полагаю, $contact - это <olcayertas@gmail.com>, и именно в этом причина проблемы. Попробуйте изменить его на olcayertas@gmail.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...