Отправка электронной почты php - PullRequest
0 голосов
/ 04 мая 2011

Я использую библиотеку CI для отправки электронной почты в формате HTML через smtp. Когда я пытаюсь отправить с моего компьютера, он отправляет правильный HTML. но когда я отправляю его с сервера, почему я получаю тег HTML. не отформатирован как HTML? Я уже установил для mailtype значение html.

Интересно, почему это работает на моем локальном компьютере, а не на сервере? Есть ли какая-либо конфигурация в php? или я должен отправить заголовок электронной почты или что-то?

public function index()
    {       
        $config = array(
            'protocol' => 'smtp',
            'smtp_host' => 'tls://smtp.gmail.com',
            'smtp_port' => 465,
            'smtp_user' => 'xxxx',
            'smtp_pass' => 'xxxx',
            'mailtype'  => 'html',
            'charset'   => 'utf-8'
        );

        $this->load->library('email', $this->config->item('email'));
        $this->email->set_newline("\r\n");
        $this->email->from('xxxx', 'xxxx');

        $this->email->to("xxxx");

        $this->email->subject('Test Email');

        $body = $this->load->view('welcome_message',null,TRUE);

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

        if (!$this->email->send()){
            echo 'fail to load email';
        }
        else {
            echo 'success to send email';
        }
    }

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Настройка параметров конфигурации не работает, если вы не инициализируете их.Добавьте это после вашего $config массива:

$this->email->initialize($config);
0 голосов
/ 04 мая 2011

Исходя из того, что я думаю вы пытаетесь сделать:

$this->load->library('email', $this->config->item('email'));

должно быть

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

Попробуйте и дайте нам знать.

...