Автор Гілка: як послати html листа  (Прочитано 1245 раз)

Відсутній Volodymyrko

  • Графоман
  • ****
  • дописів: 370
  • Карма: +0/-0
  • I Like FreeBSD !
є перловий скрпит який виводить інофрмацію в html ( або 2-ий варінт просо текст )
щоб було просто я  робив
./script.pl | mail -s "subject" email@address

так підкажіть як послати щоб лист відкривався як html в поштовій програмі чи  через веб пошту... а то воно відкривається просто як текст, тобто видно всі html теги і т.д.

 а якщо простий текст  виводити і слати - то  пропадають при читання пошти відступи, пробіли і т.д.

бажано слати таки в  html ... як то зробити .. чи треба використовувати якісь перлові модулі.. просто через mail (sendmail)  не можна ?
 
« Змінено: 2009-09-25 17:02:29 від vova07 »

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: як послати html листа
« Відповідей #1 : 2009-09-25 17:40:13 »
Вам треба змінити Content-type на text/html, тобто додати заголовок типу
Content-type: text/html; charset=utf-8
Або використовувати mime multipart, я це робив за допомогою Email::MIME, тоді ви туди можете запхати як текстову версію, так і html.

Відсутній Volodymyrko

  • Графоман
  • ****
  • дописів: 370
  • Карма: +0/-0
  • I Like FreeBSD !
Re: як послати html листа
« Відповідей #2 : 2009-09-25 18:00:39 »
якщо можете дайте приклад простенький ?  а то ніби пробув - не вийшло


зараз поки найшов такий спосіб.. html посилає так як треба
open (MAIL, "| $sendmail ") ;
print MAIL "Content-Type: text\/html\n";
print MAIL "To: $email\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL $message;
close MAIL;

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: як послати html листа
« Відповідей #3 : 2009-09-25 18:17:22 »
my @parts;

...
my $message = read_it;
push @parts, Email::MIME->create (
        attributes => {
                content_type => 'application/debian-dt',
                name         => 'new.ddtp',
                filename     => 'new.ddtp',
        },
        body => $message,
);
...

my $message = Email::MIME->create (
        header => [
                From         => $from,
                To           => $to,
                Subject      => $subject,
                'Message-id' => $id,
        ],
        parts => [ '', @parts ],
);

Email::Send->new({ mailer => 'Sendmail' })->send ( $message );