簡體   English   中英

使用Google和Codeigniter發送SMTP電子郵件時出錯

[英]Error when sending smtp email with google and codeigniter

嘗試為我的網站設置重置密碼功能,但是我無法發送電子郵件而不會發生此錯誤。

無法使用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');        
        } 

我也收到此錯誤::

消息:未定義的索引:主題

我不明白為什么會這樣,請您幫助我。

您嘗試發送兩次電子郵件,第一次設置所有選項,第二次未設置

更改

    $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['protocal'] $config['protocol']以解決發送問題

您能否提供其余用於發送電子郵件的功能,您發布的所有內容看起來都是正確的... Message: Undefined index: Subject來自其他地方,可能會引起問題。

另外...這看起來似乎很明顯,但是您實際上已經在某個地方加載了電子郵件類,對嗎( $this->load->library('email); )...而不是僅對其進行初始化?

嘗試這個

    $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);
            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM