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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Отправка писем на PHP.

Bolat » 02 июл 2005, 11:23

А все разобрался:

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

<?php

$email = 'bolat2002@mail.ru';


mail($email, 'the subject', 'the message','From: [email]mymail@mail.com[/email]');

?>

Bolat » 02 июл 2005, 11:18

berkut, Oscar

Пишу без кавычек, стало приходить везде. Спасибо.
Но все равно "Nobody".

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

<?php

$email = 'bolat2002@mail.ru';
$from  = 'hosterkz@mail.kz';

mail($email, 'Subject', 'Message',$from);

?>
Приходит письмо с текстом:
hosterkz@mail.kz
Message

Oscar » 01 июл 2005, 21:10

berkut,
:lol: Прикольно! )))

berkut » 01 июл 2005, 21:01

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

Oscar » 01 июл 2005, 18:31

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

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

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

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

Oscar » 01 июл 2005, 18:25

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

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

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

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

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

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

Bolat » 01 июл 2005, 17:19

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

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

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

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

Absurd » 30 июн 2005, 19:54

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

AiK » 30 июн 2005, 17:16

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

Bolat » 30 июн 2005, 15:11

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

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

Вернуться к началу