dtx9931 2015-05-02 16:58
浏览 52

使用代码igniter和gmail smtp在localhost上发送来自xampp的电子邮件

I am trying to create and test email functionality in a code igniter app on localhost using xampp server. I am trying to use the Google SMTP mail server by configuring it in php.ini and sendmail.ini. I am getting lots of errors which I cannot understand. My gmail account uses 2 step authentication. does that matter? Here's my code

Controller:

$this->load->library('email');
$from =$this->input->post('email');

$econfig=
    array(
        'protocol'=>'smtp', 
        'smtp_host'=>"smtp.gmail.com",
        'smtp_port'=>465,
        '_smtp_auth'=>TRUE, 
        'smtp_user'=>"deb.pratyush@gmail",
        'smtp_pass'=>"xxxxxxxx",
        'smtp_crypto'=>'ssl',               
        'mailtype'=>'html', 
        'charset'=>'utf-8',
        'validate'=>TRUE);


        $this->email->initialize($econfig);
        $this->email->set_newline("
");
        $msg=$this->input->post('msg');

        $subject = "Contact Request From ".$from ;


        $name=$this->input->post('uname');

        $this->email->to("deb.pratyush@gmail.com");
        $this->email->from($from, stripslashes($name));
        $this->email->subject($subject);
        $this->email->message($msg);

        if($this->email->send())
        {
            $this->session->set_flashdata('msg', "Message Sent");
            $url = base_url().'cms/contact-us';
            redirect($url);
        }
        else{

            echo "fail<br>";
            //echo "m=".mail("deb.pratyush@gmail.com", $subject, $msg)."<br>";
            echo $this->email->print_debugger();
        }

PHP INI:

SMTP = smtp.gmail.com
smtp_port = 465
sendmail_from = deb.pratyush@gmail.com   
sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

SENDMAIL INI:

smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto

error_logfile=error.log
debug_logfile=debug.log

auth_username=deb.pratyush@gmail.com
auth_password=xxxxxxxx
force_sender=deb.pratyush@gmail.com

ERRORS:

fail
220 mx.google.com ESMTP jp10sm8036081pbb.9 - gsmtp

hello: 250-mx.google.com at your service, [223.239.160.146]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8

Failed to authenticate password. Error: 535-5.7.8 Username and Password  not accepted. 
Learn more at 535 5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 jp10sm8036081pbb.9 - gsmtp

from: 530-5.5.1 Authentication Required. 
Learn more at
    530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257     jp10sm8036081pbb.9 - gsmtp

The following SMTP error was encountered: 530-5.5.1 Authentication Required. 
Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 jp10sm8036081pbb.9 - gsmtp

to: 530-5.5.1 Authentication Required. 
Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 jp10sm8036081pbb.9 - gsmtp

The following SMTP error was encountered: 530-5.5.1 Authentication Required. 
Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 jp10sm8036081pbb.9 - gsmtp

data: 530-5.5.1 Authentication Required. 
Learn more at
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 jp10sm8036081pbb.9 - gsmtp

The following SMTP error was encountered: 530-5.5.1 Authentication Required. 
Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 jp10sm8036081pbb.9 - gsmtp
502 5.5.1 Unrecognized command. jp10sm8036081pbb.9 - gsmtp
The following SMTP error was encountered: 502 5.5.1 Unrecognized command. jp10sm8036081pbb.9 - gsmtp
 Unable to send email using PHP SMTP. 
Your server might not be configured to send mail using this method.

User-Agent: CodeIgniter
Date: Sat, 2 May 2015 18:31:32 +0200
To: deb.pratyush@gmail.com
From: "John D\'Costa" <jd@mailinator.com>
Return-Path: <jd@mailinator.com>
Subject: =?utf-8?Q?Contact_Request_From_jd@mailinator.com?=
Reply-To: "jd@mailinator.com" <jd@mailinator.com>
X-Sender: jd@mailinator.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <5544fbe4a6133@mailinator.com>
Mime-Version: 1.0


Content-Type: multipart/alternative; boundary="B_ALT_5544fbe4a6133"

This is a multi-part message in MIME format.
Your email application may not support this format.

--B_ALT_5544fbe4a6133
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

tyftyttrtv jhvyugu


--B_ALT_5544fbe4a6133
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

tyftyttrtv jhvyugu

--B_ALT_5544fbe4a6133--
  • 写回答

3条回答 默认 最新

  • dsiftnc99059 2015-05-03 11:43
    关注

    I found the solution. My gmail account uses 2 step authentication. So i needed to create an app specific password and substitute my earlier password with the app-specific password to gain full access to my gmail account through PHP. I found the link given below in my error log for sendmail.exe

    https://support.google.com/accounts/bin/answer.py?answer=185833

    It tells you about creating app specific passwords in detail

    Code is below:

    $econfig=
        array(
            'protocol'=>'smtp', 
            'smtp_host'=>"smtp.gmail.com",
            'smtp_port'=>465,
            '_smtp_auth'=>TRUE, 
            'smtp_user'=>"deb.pratyush@gmail",
            'smtp_pass'=>"<app-specific password>",
            'smtp_crypto'=>'ssl',               
            'mailtype'=>'html', 
            'charset'=>'utf-8',
            'validate'=>TRUE);
    

    SENDMAIL INI:

    smtp_server=smtp.gmail.com
    smtp_port=465
    smtp_ssl=auto
    
    error_logfile=error.log
    debug_logfile=debug.log
    
    auth_username=deb.pratyush@gmail.com
    auth_password=<app-specific password>
    force_sender=deb.pratyush@gmail.com
    
    评论

报告相同问题?

悬赏问题

  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在