2016-11-19 46 views
0

我使用Slim v3 php框架並集成PHPMailer發送郵件。我不使用像Twig這樣的模板引擎,但我寧願使用普通的PHP。用PHPmailer修復框架和電子郵件模板渲染問題

我的想法是在單獨的文件中爲電子郵件製作HTML5模板,類似於常規頁面模板,然後將一些變量傳遞給它,渲染併發送。除了一部分之外,它的所有效果都很好 - 呈現的輸出也呈現了標題信息。

這是我的代碼看起來像,簡化當然

// Store variables in an array 
$email_content = array(
    'email__name' => $_POST['name'], 
    'email__from' => $_POST['from'], 
    'email__message' => $_POST['message'] 
); 

// Render email template 
$template = $this->view->render($response, "email/simple_email.phtml", $email_content); 

然後我送這與PHPMailer的

$mail->msgHTML($template); 

問題是,在HTML內容的頂我得到這個標題數據,這是在發送的電子郵件可見:

HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 

有沒有辦法來渲染輸出沒有這個?目前我正在使用str_replace()來刪除它,但我想有一個優雅的內置解決方案來處理這個問題?

回答

6

#render()方法返回Psr\Http\Message\ResponseInterface,其中包含有關響應的所有信息以及標題信息。

你只想要html,所以在視圖上使用#fetch()方法,它只返回html。

$template = $this->view->fetch("email/simple_email.phtml", $email_content);