わかりましたので、ページ上の連絡先フォームから指定された値から HTML メールを作成しています。コードの設定方法は、連絡先フォームを送信すると、バックエンドが送信されたすべての値を取得し、それらを配列に変換してから、HTML メールを作成するメソッドに送信します。このメソッドは電子メールのすべての html を返し、それを$message
PHP メーラーで使用する変数に貼り付けます。
システムにログを記録して、問題の原因を突き止めようとしましたが、うまくいきませんでした。HTML メールを作成するメソッドの出力をログに記録すると、正しく HTML が返されます。ただし、戻り値はどういうわけか変数に設定されていません。ここに私が意味するものがあります:
メソッドからの戻り値によって設定される変数:
$message = Email::returnView('email/formSubmission', $emailData);
メソッド内のコード:
public static function returnView($view, $data=null)
{
$viewloc = BASE_PATH . "views/{$view}.view";
if (file_exists($viewloc)) {
ob_start();
require($viewloc);
flushblocks();
return ob_get_clean();
} else {
throw new Exception("View not found: {$view}.view");
}
}
の出力をログに記録するob_get_clean()
と正しいデータが得られるため、正しく返されます。ログインしてもEmail::returnView('email/formSubmission', $emailData)
、正しいhtmlデータを取得します。メソッドが返すデータは次のとおりです。
<html>
<head>
<title>Form Submission</title>
</head>
<body style="margin: 0">
<p>
Name: Full Name<br/>
phone: 555-555-5555<br/>
email: test@example.com<br/>
comments: test<br/>
</p>
</body>
</html>
しかし、試してログ$message
に記録すると、空です。htmlが文字列ではない可能性があるため、機能していませんか?