Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Надежная отправка почты
 
 автор: SS   (11.03.2007 в 18:08)   письмо автору
 
 

Здравствуйте!

Пожалуйста, помогите решить проблему с гарантированной отправкой почты с регистрационными данными. Сейчас отправка осуществляется таким образом:


<?php
$mail 
$_POST['mail'];
$fromEmail  $HTTP_SERVER_VARS["SERVER_ADMIN"];
$sql "SELECT password FROM users WHERE mail = '$mail'";
list(
$password) = mysql_fetch_rowmysql_query($sql) ); 
{
$warnMsg ="
-----------------------------------
password: 
$password
-----------------------------------
"
;
}
mail($mail,"Your password",$warnMsg"From: $fromEmail\nX-Mailer:$Version AutoWarn System");
?>


Но почему-то получает это письмо с данными примерно половина из зарегистрировавшихся. Проверял сам — например, на land.ru письмо приходит через 5 сек и никогда не бывает «пропажи письма», а на mail.ru не приходит вообще никогда (спам-фильтр в настройках, сразу скажу — отключен). Но недавно регистрировался на некоторых сайтах — и на мой тот же самый mail.ru письма от них приходили во всех случаях. Значит, делаю вывод — проблема не с mail.ru, — а с моим кодом отправки. Что не так? Как обеспечить надежную доставку писем???

   
 
 автор: dim0s   (11.03.2007 в 20:30)   письмо автору
 
   для: SS   (11.03.2007 в 18:08)
 

У меня тоже такие проблемы были. Что-то связанное с настройками сервера. 0тправлял почту раз в сутки. Сейчас я использую скрипт, который нашел на этом форуме и трохи подработал, который обращается непосредственно к почт.серверу. Весь скрипт я приводить не буду. у меня вобще из флешки данные приходят, но соновная фишка вот.

<?php
$config 
parse_ini_file ("mail.ini");
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$server_name="mail.yourmailserver.lv"// smpt-serwer
$login=$config["login"]; // логин на почту
$passwd=$config["passw"]; // пароль на почту
$from_name "dim0s"//от кого
$from_addr "dim0s@dim0s.lv"// от кого-адрес
$to_name "comy"//кому
$to_addr "dim0s@comy-to.lv"//кому-адрес
$subject="From dim0s web-site"// тема сообщения
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
define('DEBUG'false); // выводить или нет диалог с smpt-сервером
function send($fs$data =''

  if(
$data !== 0
  { 
    if(
constant('DEBUG')) 
        echo 
'send: '.$data"<br>\r\n"
    
fwrite($fs$data."\r\n"); 
  } 

function 
send_rcv($fs$data =''

  
send($fs$data); 
  if(
feof($fs)) 
     return 
false
  
$r ''
  while((
$n fgets($fs)) !== false
  { 
  if(
constant('DEBUG')) 
        echo 
'recv: '.$n"<br>\r\n"
   
$r .= $n
   if(
$n{3} == ' '
       break; 
  } 

  return 
$r


function 
send_mail($server_name$login$passwd$from_name$from_addr$to_name$to_addr$subject$body 

   
$fs fsockopen($server_name25); 
    
send_rcv($fs,0); 
    
send_rcv($fs,"EHLO $server_name"); 
    
send_rcv($fs,"AUTH LOGIN"); 
    if (
substr(send_rcv($fs,"AUTH LOGIN"),,3) != '503') {
    
// Login i password peredaem tol'ko esli server ne vozrazhaet protiv avtorizatsii    
    // 503 - kod oshibki SMTP-avtorizatsii    
    // u menja naprimer avtorizatsija ne nuzhna
        
send_rcv($fs,base64_encode($login)); 
        
send_rcv($fs,base64_encode($passwd)); 
    } 
    
send_rcv($fs,"MAIL FROM: $from_addr"); 
    
send_rcv($fs,"RCPT TO: $to_addr"); 
    
send_rcv($fs,"DATA"); 
    
send($fs,"From: $from_name <$from_addr>"); 
    
send($fs,"To: $to_name <$to_addr>"); 
    
send($fs,"Subject: $subject"); 
    
send($fs,"MIME-Version: 1.0");
    
send($fs,"Content-Type: text/html; charset=win-1251");
    
send($fs,$body); 
    
send_rcv($fs,"."); 
    
send_rcv($fs,"QUIT"); 
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$sender_name $_POST['sender_name'];
$sender_email $_POST['sender_email'];
if(empty(
$_POST['sender_website'])){$sender_website " - ";}else{$sender_website $_POST['sender_website'];}
$sender_message $_POST['sender_message'];
// тут формируем тело сообщения-$body-красоту наводим[пропущено]
send_mail($server_name$login$passwd$from_name$from_addr$to_name$to_addr$subject$body );
?>

   
 
 автор: SS   (12.03.2007 в 00:29)   письмо автору
 
   для: dim0s   (11.03.2007 в 20:30)
 

Да, работает отлично! Супер! Спасибо!!! :)))

   
 
 автор: Trianon   (12.03.2007 в 09:36)   письмо автору
 
   для: dim0s   (11.03.2007 в 20:30)
 

Господа. В коментариях той темы, откуда был взят оригинал этого исходника, автор черным по белому написал, что скрипт предназначен исключительно для демонстрации диалога почтовый клиент - сервер, но никак не для реального применения. И уж названию этой темы он никак не отвечает.

   
 
 автор: dim0s   (12.03.2007 в 14:10)   письмо автору
 
   для: Trianon   (12.03.2007 в 09:36)
 

Пожалуйста обьясните в чем дело? Если функция mail работает не всегда, а так оно и есть, то разве нельзя отправлять почту при помощи этого скрипта? Он явно надежнее. Может он что-то нарушает?
Я его предьявлял администратору сервера перед использованием. У него никаких претензий не было.

   
 
 автор: Trianon   (12.03.2007 в 14:25)   письмо автору
 
   для: dim0s   (12.03.2007 в 14:10)
 

клиент должен вести диалог с сервером, то есть слушать и реагировать на его ответы.
Посмотрите скрипт smtpmail.php (01.03.2007 в 11:44) в теме http://softtime.ru/forum/read.php?id_forum=1&id_theme=33512 .... Там после каждой реплики стоит проверка, как ответил сервер.

   
 
 автор: dim0s   (12.03.2007 в 14:38)   письмо автору
 
   для: Trianon   (12.03.2007 в 14:25)
 

Я понял. Спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования