|
|
|
| Столкнулся с данной проблемой, нашел топик http://softtime.ru/forum/read.php?id_forum=1&id_theme=14091 где эта проблема решается... Но у меня все равно не отправляются письма.
Использую следующий код:
<?php
define('DEBUG', true); // выводить диалог с SMTP-сервером
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, 465);
send_rcv($fs,0);
send_rcv($fs,"EHLO $server_name");
send_rcv($fs,"AUTH LOGIN");
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,"");
send($fs,$body);
send_rcv($fs,".");
send_rcv($fs,"QUIT");
}
send_mail("smtp.gmail.com", "my_mail@gmail.com", "MyPassword", "Name", "my_mail@gmail.com", "Other Name", "other_email@other-domain.com", "test", "body!");
?>
|
При попытке выполнить скрипт он долго "мурыжится" и в итоге выдает следующее:
send: EHLO smtp.gmail.com
send: AUTH LOGIN
send: base64_encode($login)
send: base64_encode($passwd)
send: MAIL FROM: my_mail@gmail.com
send: RCPT TO: other_email@other-domain.com
send: DATA
send: From: Name
send: To: Other Name
send: Subject: test
send:
send: body!
send: .
send: QUIT
|
но я не получаю никаких писем на other_email@other-domain.com (я пробовал несколько разных адресов)... В чем может быть проблема? | |
|
|
|
|
|
|
|
для: tyoma
(01.10.2008 в 17:44)
| | В моем почтовом ящике лежит письмо, отправленное, как я понимаю, Вами по кнопке "письмо автору".
Попытка ответить на него вызывает отлуп системы доставки почты по причине
"Destination e-mail address is unknown or deactivated".
По сути вопроса.
1. Вы применяете скрипт, составленный исключительно в учебно-исследовательских целях.
Ни в какую production-систему его включать не следует.
2. Отклик показывает, что сервер просто не отвечает на попытки соединения. Да и еще бы он отвечал по порту 465.
3. gmail.com, насколько я знаю, не обслуживает подключения клиентов по открытому каналу. Раньше, как минимум, картина была именно такой. | |
|
|
|
|
|
|
|
для: Trianon
(01.10.2008 в 18:40)
| | Не уверен, а вчера спрашивал elenaki :)
1. Спасибо, но другого выхода у меня пока нет :( Нужно быстро сдеелать так, чтобы была возможность отправлять письма через SMTP с авторизацией
2. По 25-му порту он не коннектился и выдавал ошибки, полез в настройки гугла (для почтовых клиентов) - там указано использовать 465-й порт (http://mail.google.com/support/bin/answer.py?answer=75291).
3. Не уверен. Ведь можно же настроить любой почтовый клиент на работу с гуглом. Тогда в чем отличие скрипта от клиента, ведь насколько я понимаю там используются схожие механизмы...
Модет быть тогда стоит попрбовать другой SMTP для тестирования? | |
|
|
|