Ошибка при отправке электронной почты SMTP с Google и Codeigniter - PullRequest
0 голосов
/ 25 апреля 2011

пытается сделать функцию сброса пароля для моего сайта, однако я не могу отослать отправку электронного письма без возникновения этой ошибки.

Невозможно отправить письмо с помощью PHP mail ().Возможно, ваш сервер не настроен на отправку почты с использованием этого метода.

Я использую gmail в качестве хоста для отправки электронной почты.Вот часть функции, которая используется для отправки электронного письма.

$ user_email = $ this-> input-> post ('email_address');

    $query = $this->db->get_where('account', array('email_address' => $user_email));
    if($query) {
        $config['protocal'] = 'smtp';
        $config['mail_path'] = 'ssl://smtp.googlemail.com';
        $config['smtp_host'] = 'ssl://smtp.googlemail.com';
        $config['smtp_port'] = '465';
        $config['smtp_user'] = 'USEREMAIL';
        $config['smtp_pass'] = 'PASSWORD';
        $config['charset'] = "utf-8";
        $config['mailtype'] = "html";
        $config['newline'] = "\r\n";

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

        $this->email->from('matthew.attanasio135@gmail.com', 'Matthew');
        $this->email->to($user_email); 

        $this->email->subject('Email Test');
        $this->email->message('<h1>Testing the email class.<h1>');  

        $this->email->send();
        if ( ! $this->email->send()) {
            show_error($this->email->print_debugger());
        } 
        else {
            echo('DONE');        
        } 

Я такжеполучаю эту ошибку ::

Сообщение: неопределенный индекс: Тема

Я не понимаю, почему это происходит, не могли бы вы помочь мне, спасибо.

Ответы [ 3 ]

1 голос
/ 25 апреля 2011

Вы пытаетесь отправить электронное письмо дважды, в первый раз, когда все ваши параметры установлены, а во-вторых, они не

меняются

    $this->email->send();
    if ( ! $this->email->send()) {
        show_error($this->email->print_debugger());
    }

на

    if ( ! $this->email->send()) {
        show_error($this->email->print_debugger());
    } 

После этого вы должны получить соответствующие ошибки, если они остались.

Редактировать:

также изменить $config['protocal'] на $config['protocol'], чтобы исправить проблему с отправкой

0 голосов
/ 28 апреля 2011

Можете ли вы передать оставшуюся функцию, которую вы используете для отправки электронного письма, все, что вы опубликовали, выглядит правильно ... Message: Undefined index: Subject приходит откуда-то еще и может вызывать проблемы.

Также ... это может показаться очевидным, но вы действительно загрузили класс электронной почты где-то, верно ($this->load->library('email);) ... а не просто инициализировали его?

0 голосов
/ 25 апреля 2011

попробуйте

    $config = array('auth' => 'login',
        'username' => '***@gmail.com',
        'password' => '***password',
        'port' => '465',
        'ssl' => 'ssl');


    $request = $this->getRequest();


    if ($this->getRequest()->isPost()) {
        if ($form->isValid($request->getPost())) {
            try {
                $smtpHost = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
                $mail = new Zend_Mail();
                $mail->setBodyText($form->getValue('body'));
                $mail->setBodyHtml('');
                $mail->setFrom();
                $mail->addTo());
                $mail->setSubject('');
                $mail->send($smtpHost);
            } catch (Exception $e) {
                die($e);
            }
        }
    }
...