0
私たちはcodeigniterサイトでCIメールライブラリを使用しています。これは、Gmailで適切な形式で電子メールを送信しますが、HotmailやヤフーではそれだけでCodeigniterの電子メール機能が、yahooとライブメールでレンダリングされたhtmlコードを送信できない
は、我々はこれをファイルにHTMLテンプレートを呼び出すHTMLコードを示しています。
emailer_temp.php
<!DOCTYPE>
<html>
<head>
<title>Registration Confirmation Letter</title>
<style><body>
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="background:rgb(233, 234, 234) none repeat scroll 0% 0%/auto padding-box border-box;"><tbody><tr><td><div style="margin:0 auto;width:1089px;padding:0px">
<table class="main mce-item-table" width="100%" cellspacing="0" cellpadding="0" border="0" align="center" data-types="background,padding,border-radius,image-settings" data-last-type="image-settings">
<tbody>
<tr>
<td align="center" class="image image-full element-content element-contenteditable active" style="padding:0;">
<img class="content-image " style="width: 1089px; height: 287px;" src="<?=base_url()."assets/emailer/register.png";?>">
</td>
</tr>
</tbody>
</table>
</body>
</html>
コールテンプレートをコントローラのコントローラで
if($ResponseCode=="0"){
if(checkonlinepayment($MerchantRefNo,$Amount)==1){
$data->user = $this->user_model->get_user_profile($userid);
$data->accuser = $this->user_model->get_user_accommodation($userid);
$data->userpayacc = $this->user_model->get_paydataacc($PaymentID);
$this->sendtomail($data->user[0]->email,"Registration Confirmation Letter",$data,"emails/emailer_temp.php");
$mobileno = $data->user[0]->mobileno;
$this->sendacctosms($mobileno);
}
}
使用sendtomail機能
function sendtomail($userEmail,$subject,$data,$templates){
$config['protocol'] = 'sendmail';
$config['smtp_host'] = 'mail.mysite.com';
$config['smtp_port'] = '25';
$config['smtp_timeout'] = '1';
$config['smtp_crypto'] = 'tls';
$config['smtp_user'] = '[email protected]';
$config['smtp_pass'] = '[email protected]#321';
$config['charset'] = 'utf-8';
$config['mailtype'] = 'html';
$config['priority'] = '1';
$config['wordwrap'] = TRUE;
$this->load->library('email',$config);
$this->email->from('[email protected]', '2018');
$list = array($userEmail, '[email protected]', '[email protected]');
$this->email->to($list);
//$this->email->to($userEmail); // replace it with receiver mail id
$this->email->subject($subject);
$this->email->set_newline("\r\n");
$this->email->set_header('MIME-Version', '1.0; charset=utf-8'); //must add this line
$this->email->set_header('Content-type', 'text/html'); //must add this line
$body = $this->load->view($templates,$data,true);
$this->email->message($body);
$this->email->set_newline("\r\n");
$this->email->send();
}
質問:なぜ、このコードはYahooとHotmailでレンダリングされたメッセージの代わりにHTMLコードをテキストとして送信していますか?それはGmailで動作します!
$this->email->set_header('MIME-Version', '1.0; charset=utf-8');
ノート:
私は同じの$ this - >メール:> SET_HEADERを行う( 'MIME-バージョン= 1.0'、 'のcharset = UTF-8');しかし、まだ同じエラーは、任意の解決策を取得しないでください! –