你能幫我找出一種方法來使用 CI4 的電子郵件類發送帶有 HTML 作為訊息的電子郵件嗎?
在 Codeigniter 3 中,它很簡單,如下所示:
$email->message($this->load->view('html_page_to_send_from_view_folder',$data,true));
但在 Codeigniter 4 中,我嘗試這樣做:
$email->setMessage(echo view('html_page_to_send_from_view_folder',$data,true));
它給出了一個錯誤:
syntax error, unexpected echo(T_ECHO), expecting ')'
我還嘗試將視圖放在一個變數中,如下所示:
$echo_page = echo view('html_page_to_send_from_view_folder',$data,true);
$email->setMessage($echo_page);
但它只是拋出了同樣的錯誤,我在整個互聯網和檔案中搜索,但找不到這樣做的方法。請幫忙。
我試過這個但沒有錯誤,也沒有收到電子郵件:'(
$echo_page = view('html_page_to_send_from_view_folder',$data,true);
$email->setMessage($echo_page);
uj5u.com熱心網友回復:
根據這個,如果你想使用一些模板作為你的訊息體,你應該這樣做:
// Using a custom template
$template = view("email-template", []);
$email->setMessage($template);
CodeIgniter 4 檔案狀態:
setMessage($body)
Parameters: $body (string) – E-mail message body
Returns: CodeIgniter\Email\Email instance (method chaining)
Return type: CodeIgniter\Email\Email
Sets the e-mail message body:
$email->setMessage('This is my message');
uj5u.com熱心網友回復:
好的,我現在知道了,我通過添加此代碼使其作業 $email->setNewLine("\r\n"); 在 setMessage 之后的最后:
$email->setMessage($my_message);
$email->setNewLine("\r\n");
我還設定了 SMTP 埠 587 而不是 465:
$config['SMTPPort']= 587;
另外,對于 setMessage,我是這樣做的:
$my_message = view('html_page_to_send_from_view_folder',["id" => $data['id']]);
$email->setMessage($my_message);
真是個奇怪的人……
uj5u.com熱心網友回復:
A.首先,
而不是:?
$echo_page = echo view('html_page_to_send_from_view_folder',$data,true);
使用這個:?
$echo_page = view('html_page_to_send_from_view_folder',$data);
echo注意陳述句的運氣,而不是作為hepler 函式true的第三個引數傳遞。view(...)
B.其次,要提交基于 HTML 的電子郵件,請確保您已將mailType屬性設定為html. 這可以通過使用setMailType()Email 實體上的方法來實作。IE:
$email->setMailType('html');
或者,您可以通過將一組首選項值傳遞給 email方法來設定“郵件型別” 。initialize()IE:
public function sendMail(): bool
{
$email = \Config\Services::email();
$email->initialize([
'SMTPHost' => 'smtp.mailtrap.io',
'SMTPPort' => 2525,
'SMTPUser' => '479d7c109ae335',
'SMTPPass' => '0u6f9d18ef3256',
'SMTPCrypto' => 'tls',
'protocol' => 'smtp',
'mailType' => 'html',
'mailPath' => '/usr/sbin/sendmail',
'SMTPAuth' => true,
'fromEmail' => '[email protected]',
'fromName' => 'DEMO Company Name',
'subject' => 'First Email Test',
]);
$email->setTo('[email protected]');
$email->setMessage(view('blog_view'));
$response = $email->send();
$response ? log_message("error", "Email has been sent") : log_message("error", $email->printDebugger());
return $response;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/487740.html
