Воскресенье, 28.04.2024, 00:52
Главная
Регистрация
Вход
Софтер
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Мои статьи [34]
Партнер
Реклама
Каталог сайтов Каталог сайтов :: Развлекательный портал iTotal.RU
Radio D-FM Club
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Мои статьи

Отсылка писем с аттачами при помощи PHP Mail
Если Вам нужно послать сообщение администратору, пользователю, сделать рассылку,
  отправить отчет по електронной почте, то проще всего это сделать с помощью встроенной
  функции mail().
  
  

  bool mail (string to, string subject, string message [, string additional_headers [,

  string additional_parameters]])

  

  
  Для того, чтобы она работала должны быть установлены:
  
  
  На Unix платформе - установленный и настроенный sendmail. Если его путь
  не в переменной окружения, то в php.ini нужно указать sendmail_path =/path/to/sendmail
  -t -i в разделе [mail function].
  
  На Windows платформе - иметь SMTP сервер. Его параматры нужно указать в
  php.ini в разделе [mail function]:
  
  SMTP=192.168.1.1
  sendmail_from=admin@example.com
  
  
  Функция вызывается как
  

  mail (кому, тема, тело, [дополнительные заголовки, [параметры]])

  

  
  Всё что нужно - это правильно сформировать все строковые параметры.
  
  Кому (копии и скрытые копии указываются в дополнительных заголовках):
  
  nobody@example.com
  
  John Smith <nobody@example.com>
  
  nobody@example.com, pupkin@example.com
  
  John Smith <nobody@example.com>, Ivan Pupkin <pupkin@example.com>
  
  Тема - любой текст без символов новой строки
  
  Тело - любой текст, в т.ч. HTML или MIME
  
  Заголовки - здесь можно указывать такие заголовки: From: Cc: Bcc: MIME-Version:
  Content-type: Reply-To: X-Mailer: X-Priority: Date: Content-Transfer-Encoding:
  Content-Disposition:
  
  From - От: "pupkin@example.com" или "Ivan Pupkin <pupkin@example.com>"
  
  Cc - Копия: также как и "кому"
  
  Bcc - Скрытая копия: также как и "Кому"; работает только на
  Unix
  
  Reply-To - если при ответе нужно подставлять адресата иного чем отправителя
  
  X-Priority - важность сообщения (по умолчанию 3)
  
  Заголовки разделяются <font color="#0000CC">\r\n</font> (На Unix можно
  только <font color="#0000CC">\n</font>)
  
  Если посылается письмо в HTML формате, нужно обязательно поставить следующие
  2 строчки в заголовках:
  

  <blockquote>MIME-Version: 1.0\r\n;<br>

  Content-Type: text/html; charset=&  quot;windows-1251&  quot;</blockquote>

  

  
  !!! Хочу послать письмо с аттачментом(ми) (например HTML с рисунками)
  
  Нужно использовать MIME (RFC1896, RFC2045, RFC2046, RFC2047, RFC2048, RFC2049).
  Для этого нужно сначала считать файл в переменную и закодировать его в безопасную
  base64 кодировку с помощью функции base64_encode(). В заголовке нужно указать:
  

  MIME-Version: 1.0\r\n<br>

  Content-Type: multipart/mixed; boundary=&  quot;$delimiter&  quot;

  

  
  Где $delimiter - любая строка, можно случайная. multipart/mixed можно заменить
  на multipart/alternative.
  
  $delimiter=&  quot;----=_Разделитель_Блоков_=----&  quot;
  
  А в теле письма разделить разные типы данных boundary ($delimiter) и указать их Content-Type:
  

  
  $body="This is a multi-part message in MIME format.";


  $body.="\r\n\r\n".$delimiter;


  $body.="Content-Type: text/plain; charset=\"windows-1251\"\r\n\r\n";


  $body.="Content-Transfer-Encoding: quoted-printable";


  $body.="Привет Иван! Шлю тебе как и обещал фотку и реферат";


  $body.="\r\n\r\n".$delimiter;


  $body.="Content-Type: image/jpeg; name=\"meeting.jpg\"";


  $body.="Content-Transfer-Encoding: base64";


  $body.="Content-Disposition: attachment; filename=\"meeting.jpg\"\r\n\r\n";


  $body.=base64_encode($file1);


  $body.="\r\n\r\n".$delimiter;


  $body.="Content-Type: application/msword; name=\"referat.doc\"";

  


  $body.="Content-Transfer-Encoding: base64";


  $body.="Content-Disposition: attachment; filename=\"referat.doc\"\r\n\r\n";


  $body.=base64_encode($file2);


  $body.="\r\n\r\n".$delimiter;

  ?>

  

  
  Приведу несколько примеров:
  Простое использование функции php mail
  

  mail("rasmus@lerdorf.on.ca", "My Subject", "Line 1\nLine 2\nLine 3");

  

  Использование дополнительных заголовков php mail
  

  mail("nobody@aol.com", "the subject", $message,

      "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/" . phpversion());

  

  Создание комплексного письма при помощи PHP
  

  /* recipients */

  $recipient .= "Mary <mary@u.college.edu>" . ", " ; //note the comma

  $recipient .= "Kelly <kelly@u.college.edu>" . ", ";

  $recipient .= "ronabop@php.net";

  

  /* subject */

  $subject = "Birthday Reminders for August";

  

  /* message */

  $message .= "The following email includes a formatted ASCII table\n";

  $message .= "Day \t\tMonth \t\tYear\n";

  $message .= "3rd \t\tAug \t\t1970\n";

  $message .= "17rd\t\tAug \t\t1973\n";

  

  /* you can add a stock signature */

  $message .= "--\r\n"; //Signature delimiter

  $message .= "Birthday reminder copylefted by public domain";

  

  /* additional header pieces for errors, From cc's, bcc's, etc */

  

  $headers .= "From: Birthday Reminder <birthday@php.net>\n";

  $headers .= "X-Sender: <birthday@php.net>\n";

  $headers .= "X-Mailer: PHP\n"; // mailer

  $headers .= "X-Priority: 1\n"; // Urgent message!

  $headers .= "Return-Path: <birthday@php.net>\n";  // Return path for errors

  

  /* If you want to send html mail, uncomment the following line */

  // $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; // Mime type

  

  $headers .= "cc: birthdayarchive@php.net\n"; // CC to

  $headers .= "bcc: birthdaycheck@php.net, birthdaygifts@php.net"; // BCCs to

  

  /* and now mail it */

  mail($recipient, $subject, $message, $headers);

  

  
  В принципе овладев техникой отправки файлов с сервера на электронную почту и имея корпоративный "почтовый" интернет дома можно скачивать много файлов посредством одной лишь электронной почты. А для перекачки файлов с любого интернет сервера на корпоративный сервер обычно используется fopen, но об этом как-нибудь позже.
Категория: Мои статьи | Добавил: Morris (24.10.2009)
Просмотров: 2271 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Логин:
Пароль:
Поиск
Статьи
[01.09.2009][Мои статьи]
Есть сайт, нужны клиенты? (0)
[17.09.2011][Мои статьи]
Продвижение сайтов, поднятие ТИЦ, PR, увеличение посещаемости сайта, увеличение трафика (0)
[10.01.2010][Мои статьи]
коды к игре Dragon Age Origins (0)
[25.10.2009][Мои статьи]
MySQL как основа электронного магазина (1)
[25.10.2009][Мои статьи]
Безопасность при авторизации (0)
Навигация
  • Locations of visitors to this page
  • Рейтинг!!!
    Яндекс цитирования

    Рейтинг@Mail.ru


    | Copyright MyCorp © 2024 | Сайт управляется системой uCoz|