E-Mail???

Alles, was PHP betrifft, kann hier besprochen werden.

E-Mail???

Postby tromorow » 22. May 2004 14:38

Hi Jungs,
ich muss euch mal wieder wegen ner unnützen Frage nerven!

Also wenn man bei GMX angemeldet ist, dann kennt man deren Newsleter?!
In denen sind immer Bilder drin! Also wenn ich ne Spam Mail krieg, dann sehe ich die Bilder drin nicht da ich das im Netscape ausgeschalten habe das er die vom angegebenen Server lädt!
Aber GMX zeigt Bilder an da die in der Datei angehängt sind und dann eingefügt werden aber nicht als Anhang angezeigt werden!
Kann ich solche Mails Mit PHP Auch erstellen??? wenn Ja wie???

MFG tromorow
tromorow
 
Posts: 84
Joined: 13. January 2004 18:00
Location: "Sturgot" oder auch Stuttgart (zumindes irgend wo da)

Postby HardySim » 23. May 2004 08:56

na du schreibst einfach als "text" in die mail ne ganze HTML seite - das kannste ja natürlich auch mit php machen (HTML krempel in ne variable und dann per mail() versenden)

ichtig is dann nur noch der richtige mail header, damit der empfänger das auch richtig angezeigt bekommt und net den HTML quelltext ausgegeben bekommt :)

hier ein bsp:

Code: Select all
$msg = '<html> ... </html>';
$title = 'Betreff';
$sender = "From: me@you.com\nReturn-path: me@you.com\nReply-To: me@you.com\nContent-Type: text/html; charset=iso-8859-1"; 

mail('empanger@xyz.de', $title, $msg, $sender);


so gehts, wichtig is halt dass im header ($sender) der Content-Type richtig gesetzt ist :)
[url=http://www.hardysim.de]
Image[/url]
www.party-safari.net
User avatar
HardySim
 
Posts: 325
Joined: 19. June 2003 10:22
Location: Geisenheim

Postby tromorow » 23. May 2004 13:34

Ja soweit war ich auch schon!

Aber es ist so das GMX die Bilder im Anhang mitschickt!
Außerdem sieht der Quelltext sehr sehr merkwürdig aus mit tausenden von 3D= und so.
Wie kann ich Bilder mitschicken und gleich in die Mail an einer bestimmten Stelle einfügen?
tromorow
 
Posts: 84
Joined: 13. January 2004 18:00
Location: "Sturgot" oder auch Stuttgart (zumindes irgend wo da)

Postby Wiedmann » 23. May 2004 14:06

Hi tromorow,

das Thema ist nicht so einfach. Mit PHP und der Mail-Funktion mußt du dir ja den Aufbau (Quellcode) einer multipart MIME Mail selber zusammenbauen. Dazu hilft ein Blick in die RFC 2045 (oder auch nicht...).

Am einfachsten benutzt du eine fertige Mail-Klasse die das für dich erledigt . Einfach mal die Script-Archive durchstöbern. Bei PEAR gibt es da mit Mail_Mime auch etwas passendes. Lass dir zur Inspiration doch mal in Outlook den Quelltext von der GMX-Mail anzeigen.

Ein einfacher Code könnnte z.B. so ausehen:
Code: Select all
$fp = fopen($img_name, 'r');
$content = fread($fp, filesize($img_name));
fclose($fp);

$img_code = base64_encode($content);

$boundary = '-------**';

$receiver = 'email@test.de';
$sender = 'test';
$subject = 'test';

$header = "MIME-Version: 1.0\n";
$header .= "From: ".$sender."\n";
$header .= "Content-Type: multipart/related;\n\tboundary=".$boundary."\n";
$header .= "Content-Disposition:inline\n";

$content = "\n".$boundary."\n";
$content .= "Content-Type: text/html;charset=iso-8859-1\n";
$content .= "Content-Transfer-Encoding: 8bit\n\n";

$content .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
$content .= "<html>\n";
$content .= "<head>\n";
$content .= "<title>test</title>\n";
$content .= "</head>\n";
$content .= "<body>\n";
$content .= "<p>hier steht was...</p>\n";
$content .= "</body>\n";
$content .= "</html>\n";

$content .= "\n".$boundary."\n";
$content .= "Content-Type: application/octetstream;\n\tname=".$img_name."\n";
$content .= "Content-Transfer-Encoding: base64\n";
$content .= "Content-ID: <modinelogo>\n";

$content .= "Content-Disposition:inline;filename=".$img_name."\n\n";

$content .= $img_code;

$content .= $boundary;

mail($receiver, $subject, $content, $header);
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to PHP

Who is online

Users browsing this forum: No registered users and 12 guests