Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Sendmail

477
25 марта 2007 года
Robinnovich
182 / / 02.12.2006
Sendmail
Здравствуйте есть вопрос как настроить сервер чтобы работала функция php meil()
Установлен php5 юез изменений в php.ini apache 2 с изменениями что менял не помню (но это думаю не важно) Подскажите статью в которой описано где взят Sendmail как его прописать в php.ini и что еще нужно для роботы meil().

Можно еще и не meil()
Вот нашел класс в инете
Код:
<?
// Функции. Можно вынести в дpугой файл.

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);
  }
}


// *************************************************************************
//
//   В качестве аттача пpисоединяем html-письмо (открывается автоматически).
//   Второй аттач - некоторый файл из каталога.
//   Вот так вызывать все то, что написано выше:
//
// *************************************************************************


  $mail=new html_mime_mail();
  $mail->add_html("<html><body><center><h2>Пpивет!<br><br>".
                  "<br>Посылаю двоичный файл [/bin/ls] ...".
                  "</h2></center></body></html>");
  //$mail->add_attachment("/bin/","ls");
  $mail->build_message('win'); // если не "win", то кодиpовка koi8
  $mail->send('www.radiopage.ru',
              'lamerok@uch.net',
              'lamerok@uch.net',
              'тест');
  ?>


Но или скрипт не работает или SMTP сервер radiopage.ru не действителен, а другого не знаю, сервер моего провайдера не подходит так как там авторизация а в данном крипте нету полей password, user

Буду благодарен за любую помощь

P.S. источник http://php.spb.ru/php/mail.html
2
25 марта 2007 года
squirL
5.6K / / 13.08.2003
будьте любезны, укажите операционную систему, которую вы используете.

а по поводу скрипта - неужели настолько тяжело прочитать RFC про SMTPи доработать этот скрипт для случая с авторизацией?
14K
25 марта 2007 года
Snk
54 / / 22.03.2007
Установи smpt сервер, чтоб со скриптами не париться...
477
25 марта 2007 года
Robinnovich
182 / / 02.12.2006
ОС - Windows XP SP2

Насчет доработки просто я не профи не знаю что и где почитать по smtp если есть предложения подавайте их.
2
25 марта 2007 года
squirL
5.6K / / 13.08.2003
я же предложил - почитать RFC - описание протокола SMTP. слово google, надеюсь, знаем? разберетесь, что значат строки
[COLOR=#007700]
 
Код:
fputs($fp,"HELO $server\n");
    fputs($fp,"MAIL FROM: $from\n");
    fputs($fp,"RCPT TO: $to\n");
    fputs($fp,"DATA\n");
[/COLOR]
и что к ним добавить.

[quote=Snk]Установи smpt сервер, чтоб со скриптами не париться...[/quote]
это не всегда поможет. если он за NAT - пров может зарезать 25-й порт, если на реальнике - не факт, что у него, к примеру, есть доменное имя или выполняется обратный резолвинг. без этого - он на любом почтовике получит отлуп.
1.9K
25 марта 2007 года
InterWen
331 / / 16.09.2006
Тут уже немного было написано:

http://forum.codenet.ru/showthread.php?t=34806
http://forum.codenet.ru/showthread.php?t=34952

да и линки давались.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог