|
|
|
| Здравствуйте!
Пожалуйста, помогите решить проблему с гарантированной отправкой почты с регистрационными данными. Сейчас отправка осуществляется таким образом:
<?php
$mail = $_POST['mail'];
$fromEmail = $HTTP_SERVER_VARS["SERVER_ADMIN"];
$sql = "SELECT password FROM users WHERE mail = '$mail'";
list($password) = mysql_fetch_row( mysql_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, — а с моим кодом отправки. Что не так? Как обеспечить надежную доставку писем??? | |
|
|
|
|
|
|
|
для: 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_name, 25);
send_rcv($fs,0);
send_rcv($fs,"EHLO $server_name");
send_rcv($fs,"AUTH LOGIN");
if (substr(send_rcv($fs,"AUTH LOGIN"),0 ,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 );
?>
|
| |
|
|
|
|
|
|
|
для: dim0s
(11.03.2007 в 20:30)
| | Да, работает отлично! Супер! Спасибо!!! :))) | |
|
|
|
|
|
|
|
для: dim0s
(11.03.2007 в 20:30)
| | Господа. В коментариях той темы, откуда был взят оригинал этого исходника, автор черным по белому написал, что скрипт предназначен исключительно для демонстрации диалога почтовый клиент - сервер, но никак не для реального применения. И уж названию этой темы он никак не отвечает. | |
|
|
|
|
|
|
|
для: Trianon
(12.03.2007 в 09:36)
| | Пожалуйста обьясните в чем дело? Если функция mail работает не всегда, а так оно и есть, то разве нельзя отправлять почту при помощи этого скрипта? Он явно надежнее. Может он что-то нарушает?
Я его предьявлял администратору сервера перед использованием. У него никаких претензий не было. | |
|
|
|
|
|
|
|
для: 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 .... Там после каждой реплики стоит проверка, как ответил сервер. | |
|
|
|
|
|
|
|
для: Trianon
(12.03.2007 в 14:25)
| | Я понял. Спасибо. | |
|
|
|