Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] отправка почты из скрипта (http://forum.oszone.net/showthread.php?t=73938)

elfoflorien 03-11-2006 00:25 506094

отправка почты из скрипта
 
есть задача - при заполнении формы генерить письмо и отправлять его на некоторый адрес.
функция imap_mail работает почему-то коряво, даже после imap_open
может, кто-нибудь подскажет как все-таки послать письмо из скрипта?

vadimiron 03-11-2006 00:35 506098

Цитата:

imap_mail работает почему-то коряво
А какие признаки корявости наблюдаются?

Для отправки есть функция mail


Корявости также зависят от ОС. У вас Винды? или?

elfoflorien 03-11-2006 12:21 506346

корявости: во-первых отправляются письма через раз (или реже), во-вторых часто получаю ошибку 503: authorization required, и, наконец, страница с отправкой письма грузится порой очень долго, и в итоге получаю "сервер не найден" или просто пустую страницу, причем почта не отправлена
функция mail действует точно также.
у меня винды хр

Prisoner 03-11-2006 18:23 506519

elfoflorien, что есть в логах сервера (http и php, если используется он)?

elfoflorien 03-11-2006 20:44 506581

Prisoner
в логах апача (error.log) вот такое
Cannot find module (IP-MIB): At line 0 in (none)
Cannot find module (IF-MIB): At line 0 in (none)
Cannot find module (TCP-MIB): At line 0 in (none)
Cannot find module (UDP-MIB): At line 0 in (none)
Cannot find module (SNMPv2-MIB): At line 0 in (none)
Cannot find module (SNMPv2-SMI): At line 0 in (none)
Cannot find module (UCD-SNMP-MIB): At line 0 in (none)
Cannot find module (UCD-DEMO-MIB): At line 0 in (none)
Cannot find module (SNMP-TARGET-MIB): At line 0 in (none)
Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none)
Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none)
Cannot find module (UCD-DLMOD-MIB): At line 0 in (none)
Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none)
Cannot find module (SNMP-MPD-MIB): At line 0 in (none)
Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none)
Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none)
Cannot find module (SNMPv2-TM): At line 0 in (none)

Sham 03-11-2006 21:51 506622

elfoflorien
а у тебя IMAP-модуль корректно установлен? Т.е., где файлы модуля лежат (в отдельной папке или нет...) и т.д...
коли у тебя винды, не исключай и разрешения на файлы\папку модуля, должен быть доступ...
можешь php_imap.dll в php.ini прописать...
я бы еще посмотрел в сторону службы HTTP SSL (в смысле запустить)
вообще, должен быть мануал к модулю, поищи тут ftp://ftp.cac.washington.edu/imap/ или http://www.imap.org/biblio.html

elfoflorien 03-11-2006 22:01 506629

Sham
Цитата:

а у тебя IMAP-модуль корректно установлен?
хотелось бы это узнать
Цитата:

можешь php_imap.dll в php.ini прописать...
в смысле extension=php_imap.dll?

imap все-таки работает, хоть и через раз.
мне больше интересно почему "сервер не найден"

vadimiron 03-11-2006 23:10 506654

Может там ещё Файервол что нибудь кроет???

Prisoner 04-11-2006 01:09 506704

Логи жиденькие, да. Возможно поможет пошаговая отладка (тем же PhpED), ровно как и поглядеть в сторону не только логов апача, но и php, у них логи разные... могут быть. Кстати, "сервер не найдет" может происходить также и по причине отвала по таймауту, что может свидетельствовать или о рекурсии в скрипте, или в общем случае так или иначе об огромной задержке при выполнении на сервере.

Sham 04-11-2006 06:53 506752

имеет смысл в системные логи глянуть.... eventvwr.msc (может там чего интересного пишут...). Интересно, после чего все началось то, хотелось бы предысторию узнать тскть :) а то непонятки... вообще к установке IMAP модуля особые требования (в мануале PHP, где описание ф-ий IMAP)...

elfoflorien 04-11-2006 18:22 506973

vadimiron
не пользуюсь фаерволом из-за того, что он очень сильно все тормозит
Prisoner
Цитата:

по причине отвала по таймауту
специально не проверял, но php таймаут стоял где-то на час, а страницу "сервер не найден" я получал намного раньше
Sham
на счет предыстории: просто понадобилась отправить письмо из скрипта, полез в пхп мануал, наткнулся на имап, с трудом заставил пхп найти все модули, и началось...
Цитата:

имеет смысл в системные логи глянуть.... eventvwr.msc
ничего интересного я там не увидел... хренотень какая-то
All
мне бы не причину глюков, а способы решения узнать :)

vadimiron 04-11-2006 18:48 506979

Попробуй использовать что нибудь другое, а не встроенное решение
Так обычно быстрей находяться проблемы
Я слышал, что данное решение неплохое: здесь

elfoflorien 04-11-2006 20:08 507001

vadimiron
спасибо, скачал, попробовал, но получил в итоге:

Resolving POP3 authentication host "pop.yandex.ru"...
Connecting to host address "213.180.204.37" port 110...
S +OK POP Ya! v1.0na
C USER ***
S +OK password, please.
C PASS ***
S +OK 0 message(s) 0 bytes.
Resolving SMTP server domain "smtp.yandex.ru"...
Connecting to host address "213.180.204.38" port 25...
Connected to SMTP server "smtp.yandex.ru".
S 220 Yandex ESMTP (NO UCE)(NO UBE) server ready at Sat, 4 Nov 2006 19:58:38 +0300
C EHLO localhost
S 250-smtp2.yandex.ru expected "EHLO ts12-a28.Spb.dial.rol.ru"
S 250-SIZE 10485760
S 250-8BITMIME
S 250-PIPELINING
S 250-CHUNKING
S 250-ENHANCEDSTATUSCODES
S 250-DSN
S 250-AUTH=LOGIN
S 250-AUTH LOGIN
S 250-STARTTLS
S 250 HELP
C MAIL FROM:<***@yandex.ru>
C RCPT TO:<***@mail.ru>
C DATA
S 530 5.3.0 Sorry [212.46.202.28]; Authentication required
Disconnected.
Cound not send the message to ***@mail.ru. Error: 530 5.3.0 Sorry [212.46.202.28]; Authentication required

vadimiron 04-11-2006 21:08 507021

elfoflorien
А если с другого сервака попробывать отсылать?? Например с mail.ru на yandex ???

vadimiron 04-11-2006 21:25 507025

А если тупо руками попробывать?
PHP код:

<?php
$smtp_server 
"smtpserver.com";
$port 25;
$mydomain "mydomain.com";
$username "username"$password "password";
$sender "sender email";
$recipient "email that the content will be sent to";
$subject "the subject";
$content "the message";

// SMTP connection

$handle fsockopen($smtp_server,$port);
fputs($handle"EHLO $mydomain\r\n");

// SMTP authorization
fputs($handle"AUTH LOGIN\r\n");
fputs($handlebase64_encode($username)."\r\n");
fputs($handlebase64_encode($password)."\r\n");

// Send out the e-mail
fputs($handle"MAIL FROM:<$sender>\r\n");
fputs($handle"RCPT TO:<$recipient>\r\n");
fputs($handle"DATA\r\n");
fputs($handle"To: $recipient\n");
fputs($handle"Subject: $subject\n\n");
fputs($handle"$content\r\n");
fputs($handle".\r\n");

// Close connection to SMTP server
fputs($handle"QUIT\r\n");
?>

Кстати, Error 530 =
Цитата:

Must issue a STARTTLS command first. Encryption required for requested authentication mechanism.

elfoflorien 04-11-2006 21:34 507026

vadimiron
да, с mail.ru на яндекс посылается нормально, спасибо (я имею в виду вашу рекомендацию
Цитата:

Попробуй использовать что нибудь другое, а не встроенное решение
Так обычно быстрей находяться проблемы
Я слышал, что данное решение неплохое: здесь
сейчас попробую ваш скрипт с яндексом

elfoflorien 04-11-2006 21:51 507033

vadimiron
огромное спасибо
все стало работать нормально, письмо даже с яндекса послалось :)


Время: 09:36.

Время: 09:36.
© OSzone.net 2001-