Senden Sie HTML per E-Mail über PHP

Lesezeit: 8 Minuten

Senden Sie HTML per E Mail uber PHP
Abadis

Wie kann ich mit PHP eine E-Mail im HTML-Format mit Bildern versenden?

Ich möchte eine Seite mit einigen Einstellungen und HTML-Ausgabe haben, die per E-Mail an eine Adresse gesendet wird. Was soll ich machen?

Das Hauptproblem besteht darin, Dateien anzuhängen. Wie kann ich das machen?

  • Ist Ihr Problem beim Senden HTML Code? Oder das Versenden von E-Mails mit PHP im Allgemeinen?

    – Adi

    28. Juni 2012 um 6:14 Uhr

1646308326 609 Senden Sie HTML per E Mail uber PHP
Chris

Es ist ziemlich einfach, lassen Sie die Bilder auf dem Server und senden Sie ihnen PHP + CSS …

$to = '[email protected]';

$subject="Website Change Reqest";

$headers = "From: " . strip_tags($_POST['req-email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
$headers .= "CC: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

$message="<p><strong>This is strong text</strong> while this is not.</p>";


mail($to, $subject, $message, $headers);

Es ist diese Zeile, die dem Mailer und dem Empfänger mitteilt, dass die E-Mail (hoffentlich) wohlgeformtes HTML enthält, das sie interpretieren muss:

$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

Hier ist der Link, ich habe die Informationen.. (Verknüpfung…)

Sie brauchen jedoch Sicherheit …

  • Was ist mit CSS-Formatierung, Bildern und anderen Dateien wie JS, die eine HTML-Datei benötigt?

    – Abadis

    28. Juni 2012 um 6:21 Uhr

  • @UmerHayat stimmte zu, aber wir mussten alle irgendwo anfangen, auch wenn es nur darum geht, zu lernen, wie man Dinge googelt …

    – Chris

    28. Juni 2012 um 6:38 Uhr

  • @Abadis – CSS kann auf beide Arten erfolgen, eingebettet in die Datei oder extern wie üblich mit einer HTML-Datei. Bilder können glaube ich mit gepackt werden (habe ich noch nie gemacht) oder auf dem Server belassen und verlinkt. Schlagen Sie HTML-Bilder nach, wenn Sie sich nicht sicher sind, wie sie funktionieren: P

    – Chris

    28. Juni 2012 um 6:38 Uhr

  • NOCH NIE verwenden html, head oder body Elemente oder Sie verursachen absolutes Chaos auf webbasierten E-Mail-Systemen, die eigentlich (X)HTML-Standards folgen. Ebenfalls wenn Senden von HTML-E-Mails noch nie Senden Sie eine Header-Ebene größer als h2 da Ihr E-Mail-Betreff (auf geeigneten Systemen) in der Single enthalten sein wird h1 Element auf der Seite. Wenn dies keinen Sinn macht, denken Sie daran, dass Google versucht, Ihre Seite als Zeitung zu interpretieren, in der es nur eine Hauptüberschrift (z. B. „Wir haben den Krieg gewonnen!“) und viele kleinere Überschriften (z. B. „Kätzchen gerettet von gestörten Elchen“) gibt.

    – John

    26. Juni 2016 um 2:55 Uhr

  • Es gibt einen Tippfehler in diesem Abschnitt “$message .= “. Diese Variable wurde vorher nicht deklariert.

    – madlopt

    14. Juli 2016 um 8:50 Uhr

Senden Sie HTML per E Mail uber PHP
Subhajit

Sie müssen Ihren HTML-Code mit dem absoluten Pfad für Bilder codieren. Absoluter Pfad bedeutet, dass Sie die Bilder auf einen Server und in den hochladen müssen src Attribut von Bildern müssen Sie den direkten Pfad so angeben <img src="http://yourdomain.com/images/example.jpg">.

Unten ist der PHP-Code für Ihre Referenz:- Es stammt von http://www.php.net/manual/en/function.mail.php

<?php
// multiple recipients
$to  = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';

// subject
$subject="Birthday Reminders for August";

// message
$message="
  <p>Here are the birthdays upcoming in August!</p>
";

// To send HTML mail, the Content-type header must be set
$headers="MIME-Version: 1.0" . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

// Additional headers
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";


// Mail it
mail($to, $subject, $message, $headers);
?>

  • Ihre Frage hat mein Problem beantwortet, danke, dass Sie gründlich sind!

    – Jesse Steele

    11. August 2019 um 8:45 Uhr

Senden Sie HTML per E Mail uber PHP
Jalpesh Patel

Ich habe diesen Code und er wird perfekt für meine Website ausgeführt

  public function forgotpassword($pass,$name,$to)
    {
        $body ="<table  width=100% border=0><tr><td>";
        $body .= "<img width=200 src="";
        $body .= $this->imageUrl();
        $body .=""></img></td><td style=position:absolute;left:350;top:60;><h2><font color = #346699>PMS Pvt Ltd.</font><h2></td></tr>";
        $body .='<tr><td colspan=2><br/><br/><br/><strong>Dear '.$name.',</strong></td></tr>';
        $body .= '<tr><td colspan=2><br/><font size=3>As per Your request we send Your Password.</font><br/><br/>Password is : <b>'.$pass.'</b></td></tr>';
        $body .= '<tr><td colspan=2><br/>If you have any questions, please feel free to contact us at:<br/><a href="mailto:[email protected]" target="_blank">[email protected]</a></td></tr>';
        $body .= '<tr><td colspan=2><br/><br/>Best regards,<br>The PMS Team.</td></tr></table>';
        $subject = "Forgot Password";
        $this->sendmail($body,$to,$subject);
    }

Mailfunktion

   function sendmail($body,$to,$subject)
        {
            //require_once 'init.php';


            $from='[email protected]';      
            $headersfrom='';
            $headersfrom .= 'MIME-Version: 1.0' . "\r\n";
            $headersfrom .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            $headersfrom .= 'From: '.$from.' '. "\r\n";
            mail($to,$subject,$body,$headersfrom);
        }

Die Bild-URL-Funktion wird verwendet, wenn Sie das Bild ändern möchten, das Sie in nur einer Funktion geändert haben. Ich habe viele Mail-Funktionen wie Passwort vergessen. Erstellen Sie dort einen Benutzer, denn ich verwende die Bild-URL-Funktion. Sie können den Pfad direkt festlegen.

function imageUrl()
    {
        return "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "https://stackoverflow.com/")+1)."images/capacity.jpg";
    }

  • Danke, das war was ich brauchte

    – Abadis

    28. Juni 2012 um 6:26 Uhr

  • @Jalpesh Also würdest du für eine CSS-Datei dasselbe tun? Verweisen Sie auf den absoluten Pfad und es sollte funktionieren, oder?

    – Fernando Silva

    9. April 2014 um 23:24 Uhr

  • @FernandoSilva Sie müssen den absoluten Pfad festlegen und auch die Klasse oder ID auf das Element festlegen, damit Ihr CSS funktioniert

    – Jalpesh Patel

    10. April 2014 um 5:29 Uhr

  • @Jalpesh Ich denke, ich muss etwas anderes ausprobieren, da Hotmail alle schwebenden CSS-Regeln entfernt und Google Mail einfach meine Klassen löscht. Ich bin mir nicht sicher, ob mir etwas fehlt, aber ich habe mein HTML für Daten vorbereitet und CSS kümmert sich um das Layout. Ich verwende die PHPMailer-Klasse, um E-Mails zu senden, und ich kann keinen Hinweis darauf finden, dass dieses Verhalten dadurch verursacht wird, aber ich bin mir nicht sicher. Irgendwelche Ideen, was man sich ansehen könnte? Bilder werden übrigens korrekt mit Inline-Styling auf beiden angezeigt.

    – Fernando Silva

    15. April 2014 um 23:11 Uhr

Das Versenden einer HTML-E-Mail unterscheidet sich nicht wesentlich vom Versenden normaler E-Mails mit PHP. Was hinzugefügt werden muss, ist der Inhaltstyp zusammen mit dem Header-Parameter der PHP-Funktion mail(). Hier ist ein Beispiel.

<?php
    $to = "[email protected]";
    $subject = "HTML email";
    $message = "
    <html>
    <head>
    <title>HTML email</title>
    </head>
    <body>
    <p>A table as email</p>
    <table>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    </tr>
    <tr>
    <td>Fname</td>
    <td>Sname</td>
    </tr>
    </table>
    </body>
    </html>
    ";
    // Always set content-type when sending HTML email
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\b";
    $headers .= 'From: name' . "\r\n";
    mail($to,$subject,$message,$headers);
?>

Sie können auch überprüfen Hier für nähere Erklärungen von w3schools

Sie können die E-Mail mit HTML-Inhalten einfach über PHP versenden. Verwenden Sie das folgende Skript.

<?php
$to = '[email protected]';
$subject = "Send HTML Email Using PHP";

$htmlContent="
<html>
<body>
    <h1>Send HTML Email Using PHP</h1>
    <p>This is a HTMl email using PHP by CodexWorld</p>
</body>
</html>";

// Set content-type header for sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// Additional headers
$headers .= 'From: CodexWorld<[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";

// Send email
if(mail($to,$subject,$htmlContent,$headers)):
    $successMsg = 'Email has sent successfully.';
else:
    $errorMsg = 'Email sending fail.';
endif;
?>

Quellcode und Live-Demo finden Sie hier – Senden Sie schöne HTML-E-Mails mit PHP

1646308328 880 Senden Sie HTML per E Mail uber PHP
Martijn

Der einfachste Weg ist wahrscheinlich, einfach Zend Framework oder eines der anderen Frameworks wie CakePHP oder Symphony zu verwenden.

Du kannst es mit dem Standard machen mail funktionieren auch, aber Sie brauchen etwas mehr Wissen, wie man Bilder anhängt.

Alternativ können Sie die Bilder einfach auf einem Server hosten, anstatt sie anzuhängen. Das Versenden von HTML-Mails ist in dokumentiert mail Funktionsdokumentation.

1646308328 382 Senden Sie HTML per E Mail uber PHP
Rohitashv Singhal

Verwenden Sie PHPMailer,

Um HTML-Mail zu senden, müssen Sie nur $mail->isHTML() setzen, und Sie können Ihren Körper mit HTML-Tags setzen

Hier ist eine gut geschriebene Anleitung:

rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/

923080cookie-checkSenden Sie HTML per E-Mail über PHP

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy