Ich benutze Joomla integrierte Version von PHPmailer, um eine E-Mail zu senden. Ich habe schon gelesen this answer, aber etwas funktioniert nicht für mich. Eine Exception wird in der AltBody-Zeile ausgelöst und das PHP erreicht die Send-Zeile nicht.Senden Sie eine E-Mail mit HTML und Text
Durch das Auskommentieren der AltBody-Zeile wird die HTML-Version meiner Mail gesendet und es funktioniert einwandfrei.
ich auch setBody statt Körper verwendet, weil Körper einfach nicht funktioniert (von weiter getan Lesung heute Ich vermute, das ist, weil ich $mail->Body($msg)
statt $mail->Body = $msg
verwendet, und „Body ein Attribut ist, kein Verfahren“, sagte Marc B in einem Kommentar.)
Ist dies mit mir verwandt, nicht mit SMTP?
Kann dies aufgrund des Inhalts sein, den ich AltBody zuweisen möchte? (Es ist eine Variable, die durch Verketten mehrerer Textzeichenfolgen erstellt wird, die \ n für Zeilenumbrüche verwenden.)
Liegt das an etwas anderem?
Leider kann ich den Code des gesamten PHP nicht posten. Ich werde versuchen, mich daran zu erinnern, und ich werde es morgen überprüfen und nach und nach korrigieren.
$msg = '<p>some html';
$msg .= 'some more html. Escaped "apostrophes" like \' used because of language </p>';
$txt = "some text,\nusing doublequotes as the delimiter.";
$mail = JFactory::getMailer();
$mail->isHTML(true);
$mail->CharSet = "text/html; charset=UTF-8;";
$mail->setSender('[email protected]');
$mail->addRecipient('[email protected]');
$mail->setFrom('[email protected]');
$mail->setSubject('test mail');
$mail->setBody($msg);
$mail->AltBody($txt); # not working, commenting the line out works.
$mail->ClearCCs();
$mail->ClearBCCs();
$mail->AddBCC('[email protected]');
$mail->ClearAttachments(); # I know, this is not a cycle. But I'm not sure about injection, better delete it in case someone managed to add it.
$mail->ClearCustomHeaders();
if (empty($honeypot)) {
$mail->send();
exit('Mail sent');
}
Das ist alles in einem try
, mit dem catch
Ausnahmen fangen und Echo ihnen.
Wie wollen Sie jemand erwarten, dass Ihr Code debuggen, wenn Sie nichts posten? Lesen Sie die PHPMailer-Dokumentation, um zu sehen, wie Sie AltBody setzen – Synchro
@Synchro Ich habe es geschafft, etwas mehr zu kopieren. Ich hoffe es ist genug. – Zachiel
Lesen Sie einfach die PHPMailer Dokumente und den Code. Es gibt keine setBody-Methode; Body und AltBody sind Eigenschaften, also setze sie einfach. Sie müssen clearAttachments nicht aufrufen. – Synchro