0

わかりましたので、ページ上の連絡先フォームから指定された値から HTML メールを作成しています。コードの設定方法は、連絡先フォームを送信すると、バックエンドが送信されたすべての値を取得し、それらを配列に変換してから、HTML メールを作成するメソッドに送信します。このメソッドは電子メールのすべての html を返し、それを$messagePHP メーラーで使用する変数に貼り付けます。

システムにログを記録して、問題の原因を突き止めようとしましたが、うまくいきませんでした。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が文字列ではない可能性があるため、機能していませんか?

4

0 に答える 0