0

sendmail を使用して perl でメールに画像とハイパーリンクを追加するにはどうすればよいですか?

これは $message (変数) に必要な本文です。

あなたのファイル:filename.jpg
(ここにインラインで画像を追加してください)

あなたはそれを見つけることができます:ここにリンクを追加 `

ここに私のコードがあります:
sub sendEmail
{
my ($to, $from, $subject, $message) = @_;
my $sendmail = '/usr/lib/sendmail';
open(MAIL, "|$sendmail -oi -t");
print MAIL "From: $from\n";
print MAIL "To: $to\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$message\n";
close(MAIL);
}

sendEmail($receiver, 'admin, 'your file has been Synchronized', $message);

4

2 に答える 2

2

テキスト メッセージに埋め込まれた単純なリンクを提供することだけが目的である場合は、その手間と労力を費やす価値がないと判断することもできます。

ただし、簡単な概要は次のとおりです。

use MIME::Lite;
[...]

# First Create your message...
my $message = MIME::Lite->new(
    From    => $from_email,
    To      => $to_email,
    Cc      => join(", " => @cc_addresses),
    Subject => $subject,
    Type    => 'multipart/related',
);

# Now, we have to attach the message in HTML. First the HTML
my $html_message = <<"EOM";
<body>
    <p> Your File: <img src='cid:my_image.gif'/> has been processed
        and can be found <a href="$file_url">here</a>.</p>
</body>
EOM;

# Now define the attachment
$message->attach (
    Type => 'text/html',
    Data => $html_message,
);

# Let's not forget to attach the image too!
$message->attach (
    Type => 'image/gif',
    Id   => 'my_image.gif',
    Path => $file_name,
);

$message->send
    or die qq(Message wasn't sent: $!\n);

モジュールに含まれているMIME Primerを見てください。MIME::Liteご覧のとおり、1 つのメール リンクと 1 つの画像を追加するだけでも、ほとんどの人がやりたいと思っているよりもはるかに多くの作業が必要になります。

于 2012-04-10T18:02:03.353 に答える
2

おそらく、MIME 添付ファイルを作成できる Perl モジュールを使用する必要があります。MIME::Lite など、CPAN にはたくさんあるはずです。次の場所でディスカッションを参照してください。

http://www.revsys.com/writings/perl/sending-email-with-perl.html

于 2012-04-10T13:22:13.867 に答える