Вложения электронной почты с `MIME :: Lite :: TT :: HTML` - PullRequest
0 голосов
/ 22 августа 2011

Я пытаюсь использовать MIME::Lite::TT::HTML для отправки писем. Он прекрасно работает, но я не могу понять, как использовать его с вложениями.

Я пробовал это:

$msg->attr("content-type"  => "multipart/mixed"); 
$msg->attach(Type => $mime,
             Path => $attachment,
             Filename => $name, );

Но это ломает сообщение. Части HTML и TXT больше не интерпретируются как одно и то же, и поэтому содержимое отображается дважды.

Итак, как правильно добавлять вложения, используя MIME::Lite::TT::HTML?

Ответы [ 3 ]

1 голос
/ 24 августа 2011

К сожалению, похоже, что в письме не может быть альтернативных частей и вложений.

Я остановился на MINE::Lite::TT, который, кажется, прекрасно работает с кодом. На данный момент HTML-писем просто не будет: - /

0 голосов
/ 03 марта 2015

Я сталкиваюсь с подобной проблемой при прикреплении файла PDF и шаблона HTML с динамическим изображением и полями (имя, профессия), я также использую MIME::Lite::TT::HTML и другие библиотеки.не разделил шаблон, или вы не включили библиотеку HTML::Template;, и она отправит текст и html-файл в теле письма с приложением.В шаблоне используется только текст / html.

Вот фрагмент рабочего кода: просто измените переменную в соответствии со своими потребностями:

Шаблон html - test2.html

<html>
    <head>
        <title><TMPL_VAR NAME=profession></title>
    </head>
<body>
<table>
<tbody>
    <tr>
        <td>
            <img src=<TMPL_VAR NAME=photo> alt="my photo" width="700"/>
        </td>
    </tr>
    <tr >
        <td>
            <TMPL_VAR NAME=applicantname>
        </td>
    </tr>
</tbody>
</TABLE>
</body>
</html>

Ниже для: email.pl

use strict;
use warnings;
use MIME::Lite::TT::HTML;
#use MIME::Base64 qw( encode_base64 );
use Authen::SASL;
use Net::SSL;
use HTML::Template;

my $from_address = 'no-reply@abc.com';
my $to_address = 'to@address.com';
my $mail_host = '';
my $mail_user = '';
my $mail_password = '';
my $mail_port = 25;

my $template = HTML::Template->new(filename => 'test2.html');
$template->param(applicantname => "Applicant name");
$template->param(profession => "Designer");
$template->param(photo => "photo location or url path");

my $msg = MIME::Lite->new(
   From =>     $from_address,
   To =>       $to_address,
   Subject =>  'Applicant Resume',
   Type =>     'text/html',
   Data =>     $template->output()
);
$msg->attach (
   Type => 'application/pdf',
   Path => 'C:\Users\downloadfiles/filetest.pdf',
   Filename => 'filetest.pdf',
   Disposition => 'attachment'
) or die "Error adding : $!\n";

$msg->send('smtp',$mail_host,HELLO=>$mail_host,PORT=>$mail_port,AuthUser=>$mail_user,AuthPass=>$mail_password,Timeout=>60);
0 голосов
/ 22 августа 2011

Я думаю, что MIME-тип должен быть составным / альтернативным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...