Ich muss ein PDF mit Mail senden, ist das möglich?
$to = "xxx";
$subject = "Subject" ;
$message = 'Example message with <b>html</b>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: xxx <xxx>' . "\r\n";
mail($to,$subject,$message,$headers);
Was vermisse ich?
mail()
Funktion ist viel schwieriger als erwartet. Versuchen Sie aus ZeitgründenAntworten:
Ich stimme @MihaiIorga in den Kommentaren zu - benutze das PHPMailer-Skript. Sie scheinen es abzulehnen, weil Sie die einfachere Option wünschen. Vertrauen Sie mir, PHPMailer ist bei weitem die einfachere Option als der Versuch, es selbst mit der integrierten
mail()
Funktion von PHP zu tun . Diemail()
Funktion von PHP ist wirklich nicht sehr gut.So verwenden Sie PHPMailer:
require_once('path/to/file/class.phpmailer.php');
Das Versenden von E-Mails mit Anhängen wird von wahnsinnig schwierig zu unglaublich einfach:
Es ist nur diese eine Zeile
$email->AddAttachment();
- einfacher geht es nicht.Wenn Sie dies mit der PHP-
mail()
Funktion tun , werden Sie Stapel von Code schreiben, und Sie werden wahrscheinlich viele wirklich schwer zu findende Fehler haben.quelle
mail()
, aber für die Arbeit mit Anhängen ist dies ein Kinderspiel.mail()
Funktion zum Hinzufügen von Anhängen verwendet. Diese Antwort hilft mir nicht dabei.Sie können versuchen, den folgenden Code zu verwenden:
Bearbeiten Sie den 14. Juni 2018
Für mehr Lesbarkeit bei einigen E-Mail-Anbietern
$body .= $eol . $message . $eol . $eol;
und$body .= $eol . $content . $eol . $eol;
quelle
'Example message with <b>html</b>'
Content-Type als sein sollte . Ich poste den Kommentar in seinem Namen, da er nicht genügend Repräsentanten hat, um Kommentare zu posten, und ich die Antwort zum Löschen markiert habe.text/html
text/plain
$file
nachdem Sie darauf verwiesen haben$filename
?Für PHP 5.5.27 Sicherheitsupdate
quelle
$nmessage .= "--".$uid."\r\n";
und nach dem letzten MIME-Teil verwenden$nmessage .= "--".$uid."--";
(wie oben gezeigt).Swiftmailer ist ein weiteres benutzerfreundliches Skript, das automatisch vor E-Mail-Injection schützt und Anhänge zum Kinderspiel macht. Ich rate auch dringend davon ab, die integrierte
mail()
Funktion von PHP zu verwenden.Benutzen:
lib
Ordner in Ihrem Projektrequire_once 'lib/swift_required.php';
Fügen Sie nun den Code hinzu, wenn Sie eine E-Mail senden müssen:
Weitere Informationen und Optionen finden Sie in den Swiftmailer-Dokumenten .
quelle
Um eine E-Mail mit Anhang zu senden, müssen Sie den mehrteiligen / gemischten MIME-Typ verwenden, der angibt, dass gemischte Typen in die E-Mail aufgenommen werden. Darüber hinaus möchten wir den mehrteiligen / alternativen MIME-Typ verwenden, um sowohl Klartext- als auch HTML-Version der E-Mail zu senden. Schauen Sie sich das Beispiel an:
Wie Sie sehen können, ist das Senden einer E-Mail mit Anhang einfach durchzuführen. Im vorhergehenden Beispiel haben wir einen mehrteiligen / gemischten MIME-Typ und darin einen mehrteiligen / alternativen MIME-Typ, der zwei Versionen der E-Mail angibt. Um einen Anhang zu unserer Nachricht hinzuzufügen, lesen wir die Daten aus der angegebenen Datei in eine Zeichenfolge, codieren sie mit base64, teilen sie in kleinere Teile auf, um sicherzustellen, dass sie den MIME-Spezifikationen entsprechen, und fügen sie dann als Anhang hinzu.
Von hier genommen .
quelle
Das funktioniert bei mir. Es werden auch mehrere Anhänge angehängt. leicht
quelle
Nachdem ich eine Weile mit schlecht formatierten Anhängen zu kämpfen hatte, ist dies der Code, den ich verwendet habe:
quelle
Arbeitskonzept:
quelle
Keine der oben genannten Antworten hat aufgrund des angegebenen Anhangsformats (
application/octet-stream
) für mich funktioniert . Verwenden Sie diese Option,application/pdf
um optimale Ergebnisse mit PDF-Dateien zu erzielen.quelle
"From: $from$eolMIME-Version: 1.0$eol"
durch"From: $from" . "$eolMIME-Version: 1.0$eol"
$eol
mit" . "$eol
getan seiner ganzen Art und Weise auf einen Schlag fiel.quelle
HTML Quelltext:
PHP-Code:
quelle
Am Ende habe ich meine eigene E-Mail-Sende- / Kodierungsfunktion geschrieben. Dies hat für mich beim Senden von PDF-Anhängen gut funktioniert. Ich habe die anderen Funktionen in der Produktion nicht verwendet.
Hinweis: Obwohl die Spezifikation sehr deutlich macht, dass Sie \ r \ n verwenden müssen, um Header zu trennen, hat es nur funktioniert, wenn ich PHP_EOL verwendet habe. Ich habe dies nur unter Linux getestet. YMMV
quelle
Kopieren des Codes von dieser Seite - funktioniert in mail ()
Er beginnt damit, eine Funktion mail_attachment zu erstellen, die später aufgerufen werden kann. Was er später mit seinem Anhangscode macht.
Er hat mehr Details auf seiner Seite und beantwortet einige Probleme im Kommentarbereich.
quelle
100% funktionierendes Konzept zum Senden von E-Mails mit Anhang in PHP:
Ich habe diesen Code für das Versenden von Google SMTP-E-Mails mit Anhang verwendet.
Hinweis: Laden Sie die PHPMailer-Bibliothek von hier herunter -> https://github.com/PHPMailer/PHPMailer
quelle