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

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Bolat
Сообщения: 100
Зарегистрирован: 03 ноя 2004, 08:13

30 июн 2005, 13:49

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

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

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

Кто нить знает что там надо прописывать?
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

30 июн 2005, 15:01

Это письмо сожрала спаморезка какая - нибудь, поскольку у письма нетипичные заголовки.
2B OR NOT(2B) = FF
Bolat
Сообщения: 100
Зарегистрирован: 03 ноя 2004, 08:13

30 июн 2005, 15:11

Саморезка - чо енто?

А какие тепичные заголовки?
Аватара пользователя
AiK
Сообщения: 2271
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

30 июн 2005, 17:16

Bolat, есть два варианта отправки писем: через smtp или sendmail. Соответственно либо указываешь адрес SMTP либо пишешь путь к sendmail. И всё. Заголовки - посмотри в своём почтовике затейнике.
Нужно заполнять From и Return-Path - иначе действительно могут зарезать как спам.
Даже самый дурацкий замысел можно воплотить мастерски
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

30 июн 2005, 19:54

Нужно заполнять From и Return-Path - иначе действительно могут зарезать как спам.
Как то писал под дешевый хостинг который где-то засветился в черном списке. Так там через mail послать не получилось никак. Локально отправлялось, но на rbcmail.ru и pochta.ru не доходило. Пришлось это делать через SMTP.
2B OR NOT(2B) = FF
Bolat
Сообщения: 100
Зарегистрирован: 03 ноя 2004, 08:13

01 июл 2005, 17:19

AiK
Вообщем на юниксовом серваке запахала функция mail:

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

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

Как прописать адресс отправителя?
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

01 июл 2005, 18:25

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

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

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

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

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

mail("$email", 'the subject', 'the message'); 
и первый и второй вариант должен был бы сработать.
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

01 июл 2005, 18:31

В общем о проблеме с функцией mail:

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

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

Надеюсь, что это хоть немного поможет.
berkut
Сообщения: 81
Зарегистрирован: 26 авг 2004, 19:07

01 июл 2005, 21:01

Oscar писал(а): почему приходит от nobody - не знаю, может где-то стоит защита от символа $.
:) класс! первым параметром в mail() - адрес получателя письма.
А адрес from или return-path нужно передавать четвёртым параметром.
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

01 июл 2005, 21:10

berkut,
:lol: Прикольно! )))
Ответить