StartseiteSkriptePerl

HTML EMail versenden mit MIME::Lite

28. SEPTEMPER 2011
von Jörg
Skripte - Perl

Dieses Beispiel ist aus dem Browsergameprojekt Pingu Farmer die Registrierungsemail.
Leider haben wir die Erfahrung gemacht, dass bei manchen Spielern, die sich anmelden wollten, diese EMail in den Spam-Ordner gekommen ist oder erst gar nicht angekommen ist, gelöscht wurde. Deshalb haben wir die Registrierung in einer EMail mit Klartext geändert.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/perl -w

use strict;
use CGI;
use MIME::Lite;

my $C = new CGI;
print $C->header( -type=>"text/html");
my $nick = "gustl";

# EMail verfassen
my $mailfrom = 'support@pingu-farmer.de';
my $mailto   = 'gustl1und1@online.de';
my $subject  = "Bestätigung Registrierung bei Pingu Farmer - Nickname: ".$nick;
my $mailtext ="
<html>
  <head>
    <title>Bestätigung Registrierung bei Pingu Farmer - Nickname: ".$nick."
    </title>  
  </head>
  <body text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
    <div style= "border:3px solid #9EC0ED;padding:30px;background: url(cid:back) 
                 repeat-x #95a7c0;font-family: Verdana;font-size: 13px;">
      <table width="500" border="0">
        <tr>
          <td><img src="cid:header" width="470" height="151" /></td>
        </tr>
        <tr>
          <td>Hallo ".$nick.",<br />
              und Herzlich Willkommen bei Pingu Farmer! <br /><br />
              Deine Registrierung ist fast geschafft!<br/>
              Klicke auf diesen ... um deine Account freizuschalten!<br />
              <br />
              Viel Spaß!</td>
        </tr>
        <tr>
          <td align="right" valign="bottom"><img src="cid:pingu" width="132" height="150" /></td>
        </tr>
      </table>
     </div>     
  </body>
</html>";


#E-Mail versenden:
my $msg = MIME::Lite->new(
         From    => $mailfrom,
         To      => $mailto,
         Subject => $subject,
         Type    => "multipart/related"
    );
$msg->attach(
        Type => "text/html",
        Data => $mailtext
        ,
    );
$msg->attach(
        Type => "image/png",
        Id   => "header",
        Path => "images/header_email.png",
    );
$msg->attach(
        Type => "image/png",
        Id   => "back",
        Path => "images/background_email.png",
    );
$msg->attach(
        Type => "image/png",
        Id   => "pingu",
        Path => "images/pingu7s.png",
    );
$msg->send();      #or die ...

print "<h3>Email von $mailfrom an $mailto gesendet!</h3>";

Hier ein Bild von Outlook von der mit diesem Script gesendeten EMail:

Bild von gesendeter Email

Kommentare:

Das Skript ist für Outlook Postfächer in Ordnung, aber wenn ich dies z.B. auf ein Google Mail Postfach schicke, sieht man keine schicken Bildchen, sondern gähnende leere & den Text. Gibt es hierzu ein Trick, das die Bilder auch bei Google Mail vernünftig angezeigt werden und nicht nur als Anhang verfügbar sind? :)

von MuhQ am 06. MAI 2013 um 11:42 Uhr

Hallo.
Ist es möglich, via MIME::Lite in Perl, der EMail ein Hintergrundbild zu definieren, also kein Bild, dass per Anhang mitgegeben wird und dann
manuell geöffnet werden muss ?
Freue mich auf eine positive Antwort. Danke !
Gruß Cajus

von Cajus am 29. JANUAR 2016 um 12:56 Uhr

Hinterlasse einen Kommentar

Ein Frosch der sich an der Seite festhält