mail ()

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 18 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Здравствуйте.
    Подскажите пожалуйста, как в письме изменить Return-path?
    Если
    Изменяю в хидерах, то Return-path не получается сменить.
    Задача:
    Анонимно отсылать письма, т.е. менять "От кого" было отослано письмо, до неузнаваемости, даже с какого маил домена.
     
  2. sympler

    sympler Постоялец

    Регистр.:
    24 окт 2008
    Сообщения:
    131
    Симпатии:
    6
    по моему невозможно...
    это как скрыть ip, можно только заменить на прокси ит д, но все равно найдут...
     
  3. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    вопрос не по php а по настройке smtp сервера

    ковыряй туда

    какая хоть система ?
     
  4. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    733
    Симпатии:
    423
    В таком варианте лучше использовать Perl.
    Работа через sendmail() используя proxy-листы!
     
  5. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    У меня стоит Вин ХР СП2.
    Если надо поставлю на соседнюю тачку Линуху.
    Введите пожалуйста, в курс дела.
    В какую сторону копать.
    Надо поднять свой смтп сервер? Или достаточно каких-то машинаций с РНР скриптом?

    Смотрел исходную часть емаил запросов.
    Там есть такая строка Return-path, в которой емаил не могу сменить.
    То что через прокси надо, это одно.
    Но как изменить эту строку?


    И ещё вопрос.
    Как сервис определяет, что письмо отправил скрипт, а не ЗеБат.
    Пишу:
    Не помогает.
    С Бэта письма доходят, со скрипта - нет.
    Пишет, что использован скрипт.
     
  6. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    733
    Симпатии:
    423
    Довольно-таки плохо читали или вообще не то видимо. Читайте RFC822!
    Строка
    Код:
    print MAIL "Return-Path: $administrator\n";
    все достаточно хорошо расписано:
    Перейти по ссылке
    Это что касается моего предыдущего ответа.
    Если брать непосредственно PHP, то тут вот что читаем:
    Перейти по ссылке
    Перейти по ссылке

    Используя библиотеку PHPMailer:
    PHP:
    <?php
    public function MailSend($header$body) {
      ...
      
    $params sprintf("-oi -f %s"$this->Sender);
      if (
    strlen(ini_get('safe_mode')) < 1) {
        
    $old_from ini_get('sendmail_from');
        
    ini_set('sendmail_from'$this->Sender);
        @
    mail($to$this->EncodeHeader($this->SecureHeader($this->Subject)), $body$header$params);
      }
      else {
        @
    mail($to$this->EncodeHeader($this->SecureHeader($this->Subject)), $body$header);
      }
      if (isset(
    $old_from)) {
        
    ini_set('sendmail_from'$old_from);
      }
    }
    ?>
    Устанавливается дополнительный флаг, если safe_mode отключен, и 'sendmail_from' является overidden для Windows. То же самое можно сделать SendMail методом.

    или вот самый простой код (чтобы заставить правильно Return-path использовать mail() указавыем дополнительный (пятый) параметр, который должны быть передан!!!:(
    PHP:
    mail('recipient@domain.com''Subject'
      
    $mail_body$headers" -f sender@domain.com");
     
    LEXAlForpostl нравится это.
  7. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Спасибо ретёрн пас сменил.
    Как ещё сменить домен в месаж айди.
     
  8. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    733
    Симпатии:
    423
    Message-ID: (RFC 822, RFC 1036) — уникальный идентификатор сообщения. Состоит из адреса узла-отправителя и номера (уникального в пределах узла). Алгоритм генерации уникального номера зависит от сервера/клиента. Выглядит примерно так: AAB77AA2175ADD4BACECE2A49988705C0C93BB7B4A@example.com. Вместе с другими идентификаторами используется для поиска прохождения конкретного сообщения по журналам почтовой системы (почтовые системы фиксируют прохождение письма по его Message-ID) и для указания на письмо из друхих писем (используется для группировки и построения цепочек писем). Обычно создаётся первым почтовым сервером (MTA) в момент принятия почты от пользователя.

    Что касается снятия идентификатора пишут следующее:
    Средствами PHP на сколько я знаю вроде как невозможно, но попробуй что-то типа этого:
    PHP:
    <?php
    $headers 
    = [...] ."Message-ID: <"time() .rand(1,1000). "@".$_SERVER['SERVER_NAME'].">""\r\n" [...];
    ?>
    может поможет... не знаю. Тут лучше сделать авторегистратор почты на фриварных майл-серверах и через них переправлять. Тогда по ходу будет меняться Message-ID. На сколько я знаю, такая схема прокатывает только при использовании анонимных майл-серверов с принудительным "левым" ID или вообще MTA не создает этот идентификатор.
     
  9. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Может быть кому-то попадались такие маил сервера?
    Погуглил, но ничего подходящего не нашёл.
     
  10. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    733
    Симпатии:
    423
    тут я вижу только три варианта:
    1) написать своего агента
    2) через дырку в почтовом сервере, но не через php
    3) используя sendmail(), так как он сам назначает ID
     
Статус темы:
Закрыта.