sendmail() подделка Delivery-date

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

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

    MaxLord

    Регистр.:
    17 фев 2007
    Сообщения:
    325
    Симпатии:
    49
    Требуется изменить дату отправления письма, пришел к выводам, что через header
    вот так

    Код:
    <?php
     $attachment=array(); include('smu.php'); 
    $file[]="p1.rar";
    $from="i@maxlord.ru";
    $headers="Delivery-date: Sun, 08 Dec 2002 09:04:04 +0300";
    $to="modelordenator@gmail.com";
    $subj="письмо";
    $message="test";
    
    #загружаем файлы в массив 
    for($i=0;$i<count($file);$i++){
    $attachment[$file[$i]] = fread(fopen($file[$i], "r"), filesize($file[$i]));
    }
    #создаем переменную класса 
    
    $mail = new x_mail();
     #задаем переменные для отправки почты
     
      $mail->from = $from; $mail->headers = $headers; $mail->to = $to; $mail->subject = $subj; $mail->message = $message; 
      #прикрепляем вложения
       foreach($attachment as $k=>$v) {$mail->__attachmentsArray($v, $k);};
       
        #Отправляем письмо
    	
    	 $mail->sendmail(); 
    	 
    	 ?> 
    Код:
    <?php class x_mail{ #Задаем переменные 
    public $from; public $to; public $headers; public $subject; public $message; private $items; #функция отправки почты
     public function sendmail(){ $_headers=""; if(!empty($this->from)){$_headers.="From: ".$this->from. "\n";} if(!empty($this->headers)){$_headers.=$this->headers. "\n";} if(!empty($this->message)){ $this->__attachmentsArray($this->message,"","text/plain");} $_headers.="MIME-Version: 1.0\n"; $_headers.=$this->__insertAttachments(); mail($this->to,$this->subject,"",$_headers); } #Инициализация переменных класса
      public function x_mail(){ $this->from = ""; $this->to = ""; $this->headers = ""; $this->subject = ""; $this->message = ""; $this->items = array(); } #формируем массив вложений
       public function __attachmentsArray($body,$name="",$type="application/octet-stream"){ $this->items[]=array("body" => base64_encode($body), "name" => $name,"type" => $type,"encoding" => "base64"); } #функция добавляет файлы в тело письма
        private function __insertAttachments(){ $bound = "bound".md5(time()); $multipart = "Content-Type: multipart/mixed; boundary = \"$bound\"\n\nThis is a MIME message.\n\n--$bound"; for($i = sizeof($this->items)-1; $i>=0; $i--) { $multipart .= "\n".$this->__mimeConstructor($this->items[$i]). "--$bound";} return $multipart.= "--\n"; } #формируем MIME-тип вложения
    	 private function __mimeConstructor($items) { $_mC="Content-Type: ".$items["type"].($items["name"]? "; name = \"". $items["name"]."\"" : "")."\nContent-Transfer-Encoding: ". $items["encoding"]."\n\n".$items["body"]."\n"; return $_mC; } } ?>
    
    сделать нереально.. что делать? как можно изменить дату отправки?
     
  2. alfaexpert

    alfaexpert

    Регистр.:
    23 июл 2008
    Сообщения:
    183
    Симпатии:
    27
    Никак, почтовый сервер после отправки сам подкорректирует важные данные и/или заменит их своими, некоторые сервера добавляют свои заголовки к письмам.
     
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    сохранять письма в базу или в файлы и с кроном проверять каждый час пришло ли время отправлять письмо, если да то отправлять.
    Delivery-date это когда письмо было доставлено на сервер или клиенту (The time when a message was delivered to its recipient).


    Перейти по ссылке
    Перейти по ссылке
    Перейти по ссылке
     
Статус темы:
Закрыта.