Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Косяк с mail()
Форумы портала PHP.SU » PHP » Программирование на PHP » Косяк с mail()

Страниц (1): [1]
 

1. RayOfLight - 22 Июля, 2009 - 20:28:52 - перейти к сообщению
Переменная с назначенной функцией mail() содержит true, но никакого сообщения на e-mail не приходит.
2. RomAndry - 22 Июля, 2009 - 20:38:17 - перейти к сообщению
а true для mail не означает что письмо 100% дойдет.
3. RayOfLight - 22 Июля, 2009 - 20:40:09 - перейти к сообщению
RomAndry

Тогда почему оно не ушло?
4. RomAndry - 22 Июля, 2009 - 20:43:05 - перейти к сообщению
Цитата:

mail() возвращает TRUE, если почта была успешно принята для доставки, FALSE в ином случае.


В Вашем случае нужно смотреть, возможно хостера настройки.
(Добавление)
1. telnet localhost 25
что в ответе?
2. настройки проверьте в php.ini
3. хостера настройки отправки почты.
5. JustUserR - 23 Июля, 2009 - 02:36:47 - перейти к сообщению
RayOfLight В действительности true означает что соединение с SMTP-сервером (Для *nixов это обычно локальный sendmail) было установлено и он принял письмо - а вот что он с ним будет делать дальше это PHP не может так порсто проконтролировать
6. nofx - 24 Апреля, 2011 - 15:08:13 - перейти к сообщению
ваша функция mail, если используется smtp сервер, по идее, должна связываться с сервером, входить в него пользователем с паролем, формировать сообщение согласно MIME и отправлять почту, что то типа такого:

PHP:
скопировать код в буфер обмена
  1.  
  2.  $SmtpMail_Server     = " ";    //  адрес SMTP-сервера
  3.  $SmtpMail_Port       = "25";            // Порт SMTP-сервера, как правило 25
  4.  $SmtpMail_Username   = " ";     // Имя почтового ящика
  5.  $SmtpMail_Password   = " ";      // и пароль
  6.  $SmtpMail_From       = " ";                 // Имя отправителя в поле From
  7.  
  8. function MailSmtp($to, $subject, $message, $headers)
  9.  
  10. {
  11.  
  12.   global $SmtpMail_Server, $SmtpMail_Port, $SmtpMail_Username, $SmtpMail_Password;
  13.  
  14.   $SmtpMail_localhost  = "localhost";
  15.   $SmtpMail_newline    = "\r\n";
  16.   $SmtpMail_timeout    = "30";
  17.  
  18.   $smtpConnect = fsockopen($SmtpMail_Server, $SmtpMail_Port, $errno, $errstr, $SmtpMail_timeout);
  19.   $smtpResponse = fgets($smtpConnect, 515);
  20.  
  21.   if(empty($smtpConnect))
  22.     {
  23.       $output = "Failed to connect: $smtpResponse";
  24.       return $output;
  25.     }
  26.   else
  27.     {
  28.       $logArray['connection'] = "Connected: $smtpResponse";
  29.     }
  30.  
  31.   fputs($smtpConnect,"AUTH LOGIN" . $SmtpMail_newline);
  32.   $smtpResponse = fgets($smtpConnect, 515);
  33.   $logArray['authrequest'] = "$smtpResponse";
  34.  
  35.   fputs($smtpConnect, base64_encode($SmtpMail_Username) . $SmtpMail_newline);
  36.   $smtpResponse = fgets($smtpConnect, 515);
  37.   $logArray['authmhSmtpMail_username'] = "$smtpResponse";
  38.  
  39.   fputs($smtpConnect, base64_encode($SmtpMail_Password) . $SmtpMail_newline);
  40.   $smtpResponse = fgets($smtpConnect, 515);
  41.   $logArray['authmhSmtpMail_password'] = "$smtpResponse";
  42.  
  43.   fputs($smtpConnect, "HELO $SmtpMail_localhost" . $SmtpMail_newline);
  44.   $smtpResponse = fgets($smtpConnect, 515);
  45.   $logArray['heloresponse'] = "$smtpResponse";
  46.  
  47.   fputs($smtpConnect, "MAIL FROM: $SmtpMail_Username" . $SmtpMail_newline);
  48.   $smtpResponse = fgets($smtpConnect, 515);
  49.   $logArray['mailSmtpMail_fromresponse'] = "$smtpResponse";
  50.  
  51.   fputs($smtpConnect, "RCPT TO: $to" . $mhSmtpMail_newline);
  52.   $smtpResponse = fgets($smtpConnect, 515);
  53.   $logArray['mailtoresponse'] = "$smtpResponse";
  54.  
  55.   fputs($smtpConnect, "DATA" . $SmtpMail_newline);
  56.   $smtpResponse = fgets($smtpConnect, 515);
  57.   $logArray['data1response'] = "$smtpResponse";
  58.  
  59.   fputs($smtpConnect, "Subject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
  60.  
  61.   $smtpResponse = fgets($smtpConnect, 515);
  62.   $logArray['data2response'] = "$smtpResponse";
  63.  
  64.   fputs($smtpConnect,"QUIT" . $SmtpMail_newline);
  65.   $smtpResponse = fgets($smtpConnect, 515);
  66.   $logArray['quitresponse'] = "$smtpResponse";
  67.  
  68. }

 

Powered by ExBB FM 1.0 RC1