2012-04-10 6 views
0

Wie kann ich Bild und Hyperlink zu einer E-Mail in Perl mit sendmail hinzufügen?perl sendmail mit Hyperlink und Bild einbetten

dies ist der Körper, die ich in der $ Mitteilung (variabel):

Ihre Datei: filename.jpg

wurde (Bild hier inline hinzufügen) proccess Sie es finden: add link here `

hier ist mein Code:
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);

Antwort

2

Wenn alles, was Sie tun wollen einen einfachen Link in Ihre Textnachricht eingebettet ist zu liefern, können Sie einfach entscheiden, es lohnt sich nicht, die Schmerzen und Aufwand.

jedoch hier eine kurze Zusammenfassung:

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); 

Werfen Sie einen Blick auf die MIME Primer mit dem MIME::Lite Modul enthalten. Wie Sie sehen können, erfordert das Hinzufügen eines einzelnen E-Mail-Links und eines einzelnen Bildes viel mehr Arbeit, als die meisten von uns tun möchten.