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

Статус
В этой теме нельзя размещать новые ответы.

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="XXX@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; } } ?>

сделать нереально.. что делать? как можно изменить дату отправки?
 
Последнее редактирование:
Никак, почтовый сервер после отправки сам подкорректирует важные данные и/или заменит их своими, некоторые сервера добавляют свои заголовки к письмам.
 
сохранять письма в базу или в файлы и с кроном проверять каждый час пришло ли время отправлять письмо, если да то отправлять.
Delivery-date это когда письмо было доставлено на сервер или клиенту (The time when a message was delivered to its recipient).

 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху