|
|
|
| Привет Всем!! Есть ситуация и не знаю как ее решить. Суть в следующем.
На хосте закрыть рилей и открывать его не хотят из-за соображений безопасности. Получается с сайта я не могу слать функцией PHP - MAIL(). Но мне дают логин и пароль чтобы можно было отправлять сообщения с сайта через SMTP. Как это можно реализовать? Такого честно говоря не делал ни разу, да и примеров таких не видел.
Спасибо заранее за помощь!! | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(24.11.2005 в 18:00)
| | ну приведтся тогда изучить вот это http://www.faqs.org/rfcs/rfc788.html...
потом что-то типа такого
$smtp = fsockopen($host, 25);
$answer = fgets($smtp,512); // ответ сервера
fputs($smtp,$command."\n");
и т.д.
|
и т.д.
я так делал для проверки почты по pop3 | |
|
|
|
|
|
|
|
для: goddamn
(24.11.2005 в 18:33)
| | Я воспользовался вот этим
<?
function send_mail($server, $to, $from, $subject="", $headers="")
{
// формируем заголовок
$headers="To: $to\nFrom: $from\nSubject: $subject\nX-Mailer:
MyMail!\n$headers";
$fp = fsockopen($server, 25, &$errno, &$errstr, 30); // соединяемся с нужным сервером по 25 порту
if (!$fp)
{
// если соединение не удалось - возвращаем код ошибки
echo("Connection failed: $errno, $errstr");
}
// приветствуем сервер
fputs($fp,"HELO $server\n");
// посылаем поле FROM
fputs($fp,"MAIL FROM: $from\n");
// посылаем поле TO
fputs($fp,"RCPT TO: $to\n");
// посылаем поле DATA
fputs($fp,"DATA\n");
fputs($fp,$headers);
// дисконнектимся
fputs($fp,"\n.\nQUIT\n");
unset($buff);
while(!feof($fp)){
$buff.=fgets($fp,1024);
}
fclose($fp);
}
send_mail('mx9.yandex.ru', 'ngs54@yandex.ru', 'ttt@softtime.ru', 'Hello!');
?>
|
запустил этот файл sendy.php с хоста.
и от хоста получил следующее
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in C:\Inetpub\Sites\011\sendy.php on line 7 Parse error: parse error in C:\Inetpub\Sites\011\sendy.php on line 30
что бы это значило? Строка 30 это SEND_MAIL.....
и что-то в коде я не увидел не логина ни пароля для аутентификации на SMTP. | |
|
|
|
|
|
|
|
для: Alex Boxgorn
(24.11.2005 в 18:59)
| |
function send_mail($server, $to, $from, $subject) {....}
|
еще было бы неплохо видеть ответы сервера на команды. | |
|
|
|