>>>>>Здраствуйте. >>>>>Подскажите пожалуйста как сделать чтобы функция mail() php отправляла почту через определённый >>>>>smtp сервер. Класс отдельный на php для этого использовать не хочется. >>>>> >>>>> >>>>>P.S. ОС: FreeBSD >>>> >>>> >>>>http://ru.php.net/manual/en/ref.mail.php - уже не в состоянии прочесть и разобрать >>>>примеры чтобы сваять под себя? >>> >>> >>>и что там нужного мне? там примеры в основном либо через функцию >>>mail либо через дополнительные классы. >>>параметры >>>SMTP >>>smtp_port >>>под Windows >>>под юникс надо sendmail_path юзать, но в man sendmail нету способа указания >>>smtp сервера. >> >>mail как функция всегда использовалась для сброса данных на MTA, соответственно >>никаких smtphost и smtpport не требуется, ибо это занятие MTA (Mail Transfer >>Agent) >>в простонародии smtp-почтовик (sendmail, postfix, exim . etc) >> >>Соответственно, либо вы настраиваете MTA и забываете про smtp_server, либо >>сами формируете письмо по RFC c mime и реализуете smtp-connect, либо берете >> >>готовые классы, функции и при необходимости подпиливаете под свою задачу >> Если нет желания лопатить кучу RFC по MAIL,SMTP,MIME - возьмите готовые, >>ссылки >>есть как в предыдущем URL в примерах, так и >>http://ru.php.net/manual/en/function.mail.php > >понял спасибо, средствами php не обойтись, mta буду копать - мне просто >надо именно, чтобы заработала функция mail() >P.S. в mta postfix не подскажете как задать smtp сервер? никак, потому как если на локальной машине поднят MTA, он либо через SMART хост ВСЮ почту бросает на него, либо сам все разруливает - делает к DNS запрос на получение MX записи и берет оттуда почтовый релей для адреса-получателя и сам соединяется с этим почтовым релем и отдает ему почтовое письмо которое получил от функции mail(). Итого это выглядит так: - машина на которой вы создаете свой продукт, например apache+php должна иметь поднятый и настроенный MTA, в этом случае вы используете mail() НИ О ЧЕМ НЕ ЗАБОТЯСЬ, за исключением настроек в php.ini. Реализация mail() для WIN32 тоже исключение - если на указанной машине НЕТ MTA или он не работает, не настроен - в этом случае функция mail() бессмысленна и вы реализуете самостоятельно полноценное письмо с полноценными headers по RFC, затем smtp соединение к заданному smtp-серверу, проверки тоже за вами, ни один внешний (чужой) MTA не даст абы кому посылать через себя почту, иначе это будет OPEN-RELAY через который спам польется жутким потоком Вот и все, просто и прозрачно.
|