CodeIgniter: HTML-почта приходит пустым - PullRequest
0 голосов
/ 04 марта 2012

Я пытаюсь получить приведенное ниже письмо с Thunderbird , но оно приходит пустым. От и тема * не повреждены, но сообщение пустое, но print_debugger(); показывает все содержимое ** и т. Д.

* Субъект показывает название компании, но не текст «Подтверждение регистрации пользователя»

** Я также получаю следующие ошибки на странице print_debugger();, но я думаю, что это вызвано print_debugger();

Message: Cannot modify header information - headers already sent by line 72 -> echo $this->email->print_debugger(); for both the session and url_helper

Config:

$config['protocol'] = 'mail';
$config['wordwrap'] = FALSE;
$config['send_multipart'] = FALSE ;
$config['mailtype'] = 'html';

Контроллер:

function _userRegEmail($activateCode,$email,$firstname,$lastname){
        $data['companyName'] = $this->core_model->companyDetails()->coreCompanyName;
        $data['companyEmail'] = $this->core_model->companyDetails()->coreContactEmail;
        $data['companyContact'] = $this->core_model->companyDetails()->coreContactName;
        $data['firstName'] = $firstname;
        $data['lastName'] = $lastname;
        $data['email'] = $email;
        $data['activateCode'] = $activateCode;

        $this->email->from($this->core_model->companyDetails()->coreContactEmail, $this->core_model->companyDetails()->coreCompanyName);
        $this->email->to($email);
        $this->email->subject($this->core_model->companyDetails()->coreCompanyName 'User Registration Confirmation');

        $messageContent= $this->load->view('email_templates/userReg',$data, TRUE);

        $this->email->message($messageContent);

        $this->email->send();

        echo $this->email->print_debugger();
    }

Вид:

<html>
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
    <title/>
  </head>
  <body>
    <div class="container" style="width: 600px;height: 100%;margin: 0 auto;font-family: Arial, &quot;MS Trebuchet&quot;, sans-serif">
        <div class="header" style="width: 100%">
            <h1 style="text-align: center;color: #00afd8"><?php echo $companyName; ?></h1>
            </div>
                <div class="content">
                    <h2 style="font-size: 15px">Hello <?php echo $firstName; ?></h2>
                <p style="margin-left: 15px">Thank you for signing up to Farm Ads.</p>
                <p style="margin-left: 15px">Could you please click <a href="<?php base_url(); ?>users/confirm/"<?php $activateCode; ?>>here</a> to activate your account.</p>

                <div class="from">
                    <p class="bold" style="margin-left: 15px;font-weight: bold;font-size: 12px">Regards,</p>
                    <p style="margin-left: 15px;font-weight: bold;font-size: 12px"><?php $companyContact; ?></p>
                    </div>
             </div> 
        </div>

</body>
</html>

1 Ответ

2 голосов
/ 04 марта 2012

Вы не передаете $data на просмотр.Вместо:

$messageContent= $this->load->view('email_templates/userReg','', TRUE);

Попробуйте:

$messageContent= $this->load->view('email_templates/userReg', $data, TRUE);

В коде строки темы письма вы забыли . для соединения двух строк:

$this->email->subject($this->core_model->companyDetails()->coreCompanyName.' User Registration Confirmation');

По вашему мнению, также есть ошибка.$activateCode должен быть внутри кавычек <a href="">, а не снаружи.И вы забыли echo в нескольких местах на ваш взгляд.

<a href="<?php echo base_url(); ?>users/confirm/<?php echo $activateCode; ?>">here</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...