7

ビューからロードされた電子メールの内容を使用して、アプリケーションからユーザーに電子メールを送信したい 。これは私が今まで試したコードです:

$toemail = "user@email.id";

$subject = "Mail Subject is here";
$mesg = $this->load->view('template/email');

$this->load->library('email');

$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html';

$this->email->initialize($config);

$this->email->to($toemail);
$this->email->from($fromemail, "Title");
$this->email->subject($subject);
$this->email->message($mesg);
$mail = $this->email->send();
4

4 に答える 4

23
  1. CIの電子メールを機能させるには、コントローラー内でも 呼び出す必要があります。$this->load->library('email');
  2. また、あなたのコードでは: $fromemailは初期化されていません。
  3. サーバーでSMTPをサポートする必要があります。
  4. $ configは、値とキーを割り当てる前に配列として宣言する必要があります。

作業コード:

$this->load->library('email');
$fromemail="ad@c.com";
$toemail = "user@email.id";
$subject = "Mail Subject is here";
$data=array();
// $mesg = $this->load->view('template/email',$data,true);
// or
$mesg = $this->load->view('template/email','',true);


$config=array(
'charset'=>'utf-8',
'wordwrap'=> TRUE,
'mailtype' => 'html'
);

$this->email->initialize($config);

$this->email->to($toemail);
$this->email->from($fromemail, "Title");
$this->email->subject($subject);
$this->email->message($mesg);
$mail = $this->email->send();

編集: リカニアンによって指摘されたように真実$mesg = $this->load->view('template/email',true);を持っている必要があります。trueに設定すると、データは出力ストリームに送信されませんが、文字列として返されます。

編集: $this->load->view();データを含む、または空の2番目のパラメーターが必要$mesg = $this->load->view(view,data,true);です。そうでない場合は機能しません

于 2012-05-19T07:44:00.227 に答える
9

この行$mesg= $ this-> load-> view('template / email'、true);
$ mesg = $ this-> load-> view('template / email'、''、true);のようになります。
値がtrueの前に一重引用符を付けると、完全に機能します

于 2013-07-18T22:41:22.470 に答える
4

メールテンプレートの送信codeigniterでは、メールを送信する前にメタタグを付ける必要があります

$this->data['data'] = $data;
$message = $this->load->view('emailer/create-account', $this->data,  TRUE);
$this->email->set_header('MIME-Version', '1.0; charset=utf-8');
$this->email->set_header('Content-type', 'text/html');
$this->email->from($email, $name);
$this->email->to('emailaddres@mail.com');
$this->email->subject($subject);
$this->email->message($message);
$this->email->send();
于 2017-03-02T15:05:45.603 に答える
-2

やってみます!! 多くのエラーが直面した後、それは私のもののために働いています

            $subject = 'New message.';
            $config = Array(        
                'protocol' => 'sendmail',
                'smtp_host' => 'Your smtp host',
                'smtp_port' => 465,
                'smtp_user' => 'webmail',
                'smtp_pass' => 'webmail pass',
                'smtp_timeout' => '4',
                'mailtype'  => 'html', 
                'charset'   => 'utf-8',
                'wordwrap' => TRUE
            );
            $this->load->library('email', $config);
            $this->email->set_newline("\r\n");
            $this->email->set_header('MIME-Version', '1.0; charset=utf-8');
            $this->email->set_header('Content-type', 'text/html');

            $this->email->from('from mail address', 'Company name ');
            $data = array(
                 'message'=> $this->input->post('message')
                     );
            $this->email->to($toEmail);  
            $this->email->subject($subject); 

            $body = $this->load->view('email/sendmail.php',$data,TRUE);
            $this->email->message($body);   
            $this->email->send();
于 2018-05-03T17:59:36.893 に答える