Я піду по простому шляху, я буду використовувати CPAN модуль Mime :: Lite і раджу вам робити те ж саме.
Пояснюю чому. Самому писати декодер для поштових форматів справа складна і вимагає величезної кількості часу, а час це найдорожче що є у людини! Пам'ятайте про це.
Q: А де мені взяти цей модуль?
A: Швидше за все він вже встановлений на вашому сервері, якщо його немає, то ви можете його завантажити (27kb) і самостійно встановити. (Навіть якщо у вас немає прямого доступу до сервера).
Тепер почнемо "готувати грунт"
Напишіть наступну програму:
Закачайте її на сервер і запустіть. Якщо відповідь буде Модуль не встановлено вам доведеться: завантажити (27kb) модуль, закачати його на сервер в вашу cgi-bin директорію (не надаючи атрибути 755!), І замінювати в цій статті рядок
use MIME :: Lite;
на
require "шлях / к / файлу / Lite.pm";
Ось і вся підготовка.
Синтаксис є стандартним для таких модулів.
TEXT - простий форматований текст
text / html - html документ
image / gif - картинка GIF
image / jpg - картинка JPG
image / png - картинка PNG
multipart / mixed - змішані типи
multipart / related - змішані типи, використовуються для відсилання HTML сторінок зі "вбудованими" картинками
або спрощено
"TEXT" - "text / plain"
"BINARY" - "application / octet-stream"
Encoding => 'base64'
Як кодувати повідомлення для відправки. Значення за замовчуванням можна не використовувати.
Path => '../ file.gif'
Місцезнаходження файлу на сервері.
$ Msg-> send ();
Послати повідомлення.
Буває двох типів через SMTP або Sendmail.
MIME :: Lite-> send ( 'smtp', "smtp.mail.ru", Timeout => 60)
MIME :: Lite-> send ( "sendmail", "/ usr / lib / sendmail -t");
А тепер декілька прикладів. Для засвоєння матеріалу
Отже припустимо вам треба послати текстове повідомлення з двома файлами всередині
А тепер інша ситуація: Ви розсилаєте розсилку у вигляді HTML з картинками в самому листі
Можлива наявність помилок і друкарських помилок в цій статті. Всі ми люди і не застраховані від несподіванок. Якщо такі будуть Вами помічені - повідомте мені, я їх обов'язково виправлю. Також можете надсилати пропозиції і доповнення щодо даної статті.
Що або незрозуміло? Пишіть доповню.