Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: почему то не работает функция отправки почты

Сообщения:  [1-10] 

 
 автор: Trianon   (10.05.2007 в 14:27)   письмо автору
 
   для: eclipse   (10.05.2007 в 13:59)
 

этот заголовок отвечает за вид, в котором передается тело сообщения.
Но откровенно говоря, в восьмибитном режиме работают далеко не все все серверы.
То есть если Вы его не поставите и напоретесь на такой сервер - письмо будет искажено.
а если поставите и напоретесь - письмо будет либо искажено либо отвергнуто.
Для корректной передачи существуют методы base64 и quoted-printable .Но их надо применять . Над телом письма.
пример можно узреть здесь http://softtime.ru/scripts/mailattach.php

   
 
 автор: zerocool   (10.05.2007 в 14:15)   письмо автору
 
   для: eclipse   (10.05.2007 в 13:59)
 

Почитайте про это

http://www.citforum.ru/internet/common/rfc1521.shtml#5

   
 
 автор: eclipse   (10.05.2007 в 13:59)   письмо автору
 
   для: zerocool   (10.05.2007 в 10:19)
 

классна =) спасибо =) все получилось =) только например если переслать на gmail.com (на другие мэйл сервисы ещё не пробовал) в тело письма ещё влазит этот хидер


  $headers .= "Content-Transfer-Encoding: 8bit\r\n";


можжет он необязательный и его можно опустить??? интересно узнать за что он отвечает...

   
 
 автор: zerocool   (10.05.2007 в 10:19)   письмо автору
 
   для: eclipse   (10.05.2007 в 09:38)
 

Попробуйте так:

<?php

 $from
="Е-mail от кого";
 
$to="E-mail кому";
 
$tema="Заголовок";
 
$body="Тема письма";
 
sendmail($from,$to,$tema,$body);


function 
sendmail($from,$to,$subj,$text) {
  
$headers  "Reply-To: $from\r\n";
  
$headers .= "From: $from\r\n";
  
$headers .= "Return-Path: $from\r\n";
  
$headers .= "Content-Type: text/html; charset=windows-1251\r\n";
  
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
  
$headers .= "MIME-Version: 1.0\r\n";
  
$subj $subj;
  @
mail($to,$subj,$text,$headers);
}

?>

   
 
 автор: eclipse   (10.05.2007 в 09:38)   письмо автору
 
   для: Trianon   (09.05.2007 в 12:21)
 

функция mail меня устраивает... но или я не нашел всех ее параметров или она не умеет действительно отправить письмо с какого либо ящика... так как при отправке указывается или мыло хостинга или пишется 'Неизвестный отправитель'... а мне нужно чтобы отправлялось письмо с какого либо моего ящика... пробовал отправлять html-письмо и указывать там такие данные

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: eclipse_work@mail.ru <eclipse_work@mail.ru>' . "\r\n";
$headers .= 'From: Birthday Reminder <123@mail.ru>' . "\r\n";
$headers .= 'Cc: 123@mail.ru' . "\r\n";
$headers .= 'Bcc: 123@mail.ru' . "\r\n";


но и так не получается...

   
 
 автор: Trianon   (09.05.2007 в 12:21)   письмо автору
 
   для: eclipse   (09.05.2007 в 11:58)
 

Вы хотите отправить письмо именно с чужого ящика? Функция mail Вас не устраивает? Почему?

   
 
 автор: eclipse   (09.05.2007 в 11:58)   письмо автору
 
   для: Trianon   (09.05.2007 в 11:35)
 

а можно ли привести пример как отправить с какого либо ящика e-mail с банальным текстом на какой либо другой почтовый ящик???

   
 
 автор: Trianon   (09.05.2007 в 11:35)   письмо автору
 
   для: eclipse   (09.05.2007 в 08:57)
 

Основная ошибка заключается в том, что Ваш скрипт не соблюдает протокол.
Он отправляет серверу запросы, но совершенно не пытается ни дожидаться ответов сервера, ни анализировать их.

   
 
 автор: Ziq   (09.05.2007 в 11:02)   письмо автору
 
   для: eclipse   (09.05.2007 в 08:57)
 

А Вы уверенны, что код работает с mail.ru? Просто бросилось в глаза, что пароль нигде не указан. Для mail.ru он определенно необходим.

   
 
 автор: eclipse   (09.05.2007 в 08:57)   письмо автору
 
 

нашел в нете код по отправке почты с определенного e-mail'а и после его запуска ничего не происходит не выдаются ошибки и не отправляется мыло хотя данные верные


class html_mime_mail {
  var $headers; 
  var $multipart; 
  var $mime; 
  var $html; 
  var $parts = array(); 

function html_mime_mail($headers="") { 
    $this->headers=$headers; 


function add_html($html="") { 
    $this->html.=$html; 


function build_html($orig_boundary,$kod) { 
    $this->multipart.="--$orig_boundary\n"; 
    if ($kod=='w' || $kod=='win' || $kod=='windows-1251') $kod='windows-1251';
    else $kod='koi8-r';
    $this->multipart.="Content-Type: text/html; charset=$kod\n"; 
    $this->multipart.="BCC: del@ipo.spb.ru\n";
    $this->multipart.="Content-Transfer-Encoding: Quot-Printed\n\n"; 
    $this->multipart.="$this->html\n\n"; 



function add_attachment($path="", $name = "", $c_type="application/octet-stream") { 
    if (!file_exists($path.$name)) {
      print "File $path.$name dosn't exist.";
      return;
    }
    $fp=fopen($path.$name,"r");
    if (!$fp) {
      print "File $path.$name coudn't be read.";
      return;
    } 
    $file=fread($fp, filesize($path.$name));
    fclose($fp);
    $this->parts[]=array("body"=>$file, "name"=>$name,"c_type"=>$c_type); 



function build_part($i) { 
    $message_part=""; 
    $message_part.="Content-Type: ".$this->parts[$i]["c_type"]; 
    if ($this->parts[$i]["name"]!="") 
       $message_part.="; name = \"".$this->parts[$i]["name"]."\"\n"; 
    else 
       $message_part.="\n"; 
    $message_part.="Content-Transfer-Encoding: base64\n"; 
    $message_part.="Content-Disposition: attachment; filename = \"".
       $this->parts[$i]["name"]."\"\n\n"; 
    $message_part.=chunk_split(base64_encode($this->parts[$i]["body"]))."\n";
    return $message_part; 



function build_message($kod) { 
    $boundary="=_".md5(uniqid(time())); 
    $this->headers.="MIME-Version: 1.0\n"; 
    $this->headers.="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; 
    $this->multipart=""; 
    $this->multipart.="This is a MIME encoded message.\n\n"; 
    $this->build_html($boundary,$kod); 
    for ($i=(count($this->parts)-1); $i>=0; $i--)
      $this->multipart.="--$boundary\n".$this->build_part($i); 
    $this->mime = "$this->multipart--$boundary--\n"; 



function send($server, $to, $from, $subject="", $headers="") { 

    $headers="To: $to\nFrom: $from\nSubject: $subject\nX-Mailer: The Mouse!\n$headers";
    $fp = fsockopen($server, 25, $errno, $errstr, 30);
    if (!$fp)
       die("Server $server. Connection failed: $errno, $errstr");
    fputs($fp,"HELO $server\n");
    fputs($fp,"MAIL FROM: $from\n");
    fputs($fp,"RCPT TO: $to\n");
    fputs($fp,"DATA\n");
    fputs($fp,$this->headers);
    if (strlen($headers))
      fputs($fp,"$headers\n");
    fputs($fp,$this->mime);
    fputs($fp,"\n.\nQUIT\n");
    while(!feof($fp))
      $resp.=fgets($fp,1024);
    fclose($fp);
  } 
}

$mail=new html_mime_mail();
$mail->add_html("<html><body><center><h2>Пpивет!<br><br>".
                  "<br>Посылаю двоичный файл".
                  "</h2></center></body></html>");
//$mail->add_attachment("/bin/","ls");
$mail->build_message('win'); // если не "win", то кодиpовка koi8
$mail->send('smtp.mail.ru',
              'eclipse_work@gmail.com',
              '123@mail.ru',
              'Новый заказ');



можжет кто найдет ошибку или недочет...

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования