Страница 1 из 2

Отправка писем на PHP.

Добавлено: 30 июн 2005, 13:49
Bolat

Код: Выделить всё

<?php
  if(mail("zhusupov@vtb.kz", "Some subject", "Some text"))
  {echo'Work.';}
?>
На экран выодится Work, но письмо не приходит.

Наверное это из за настроек в php.ini.

Кто нить знает что там надо прописывать?

Добавлено: 30 июн 2005, 15:01
Absurd
Это письмо сожрала спаморезка какая - нибудь, поскольку у письма нетипичные заголовки.

Добавлено: 30 июн 2005, 15:11
Bolat
Саморезка - чо енто?

А какие тепичные заголовки?

Добавлено: 30 июн 2005, 17:16
AiK
Bolat, есть два варианта отправки писем: через smtp или sendmail. Соответственно либо указываешь адрес SMTP либо пишешь путь к sendmail. И всё. Заголовки - посмотри в своём почтовике затейнике.
Нужно заполнять From и Return-Path - иначе действительно могут зарезать как спам.

Добавлено: 30 июн 2005, 19:54
Absurd
Нужно заполнять From и Return-Path - иначе действительно могут зарезать как спам.
Как то писал под дешевый хостинг который где-то засветился в черном списке. Так там через mail послать не получилось никак. Локально отправлялось, но на rbcmail.ru и pochta.ru не доходило. Пришлось это делать через SMTP.

Добавлено: 01 июл 2005, 17:19
Bolat
AiK
Вообщем на юниксовом серваке запахала функция mail:

Код: Выделить всё

 mail('$email', 'the subject', 'the message');
Токо вот письмо приходит с пустым полем "от кого" точнее там написано "nobody".
Из за этого наверное проходит только в тех почтовых серверах где нет анти спама наверное. Так как на mail.ru и др. пристижные ящики не приходит.

Как прописать адресс отправителя?

Добавлено: 01 июл 2005, 18:25
Oscar
Bolat,
Если ты пишешь одинарные кавычки '$email' то переменная $email не будет распакована, насколько я знаю.
Но в этом случае письмо должно было бы прийти от пользователя $email, почему приходит от nobody - не знаю, может где-то стоит защита от символа $.

Попробуй писать без кавычек:

Код: Выделить всё

mail($email, 'the subject', 'the message'); 
или с двойными:

Код: Выделить всё

mail("$email", 'the subject', 'the message'); 
и первый и второй вариант должен был бы сработать.

Добавлено: 01 июл 2005, 18:31
Oscar
В общем о проблеме с функцией mail:

Насколько мне известно, она работает только если:
1. Веб-сервер является одновременно и Мейл-сервером (если на сервере разрешено отправлять письма и настройки фаервола, за которым, как правило, стоит сервер пропускают пакеты, пришедшие с определённого порта )
2. На сервере есть необходимые утилиты (например sendmail, о чём говорил Aik, она есть под *nix серверами, как выглядит это дело под Windows - не знаю).

Альтернативное решение:
Если нету 2-го пункта - можно использовать внешние SMTP серверы для отправки почты (скорей всего нужна авторизация)
Если стоит запрет 1-го плана, - можно сделать веб-интерфейс на внешнем сервере, где разрешено отсылать емейлы, и передавать данные туда со своего сервера.

Надеюсь, что это хоть немного поможет.

Добавлено: 01 июл 2005, 21:01
berkut
Oscar писал(а): почему приходит от nobody - не знаю, может где-то стоит защита от символа $.
:) класс! первым параметром в mail() - адрес получателя письма.
А адрес from или return-path нужно передавать четвёртым параметром.

Добавлено: 01 июл 2005, 21:10
Oscar
berkut,
:lol: Прикольно! )))