Joomla の統合バージョンの PHPmailer を使用して電子メールを送信しています。私はすでにこの回答を読んでいますが、何かがうまくいきません。AltBody 行で例外がスローされ、PHP が Send 行に到達できません。
AltBody 行をコメントアウトすると、HTML バージョンのメールが送信され、正常に動作します。
また、 Body の代わりに setBody を使用しました。これは、 Body が機能しないためです (今日の詳細な読書から、 の$mail->Body($msg)
代わりにを使用したことが原因であると思われ$mail->Body = $msg
、「Body はメソッドではなく属性です」と Marc B はコメントで述べています。)
これは、SMTP を使用していないことに関連していますか?
これは、AltBody に割り当てようとしているコンテンツが原因でしょうか? (これは、改行に \n を使用するテキストの複数の文字列を連結することによって作成された変数です。)
これは何か別の理由ですか?
残念ながら、php 全体のコードを掲載することはできません。私はそれを覚えようとし、明日それをチェックし、徐々に修正します.
$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('example@example.com');
$mail->addRecipient('you@example.com');
$mail->setFrom('example@example.com');
$mail->setSubject('test mail');
$mail->setBody($msg);
$mail->AltBody($txt); # not working, commenting the line out works.
$mail->ClearCCs();
$mail->ClearBCCs();
$mail->AddBCC('example@example.com');
$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');
}
これはすべて の中にありtry
、catch
例外をキャッチしてエコーするためのものです。