dsfs5420 2014-05-12 07:05 采纳率: 100%
浏览 54
已采纳

如何在zf2中使用php邮件发送电子邮件?

I use php mailer for sending email in zf2 but email not send i used gmail authentication in php mailer but when i run code it gives me following error:

SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: System error (0) SMTP connect() failed. Mailer Error: SMTP connect() failed. 

I used this Error sending e-mail using Gmail SMTP but same error exist

how i remove this error and send email? here is my code:

public function addAction()
{
    //check permissions
    if(!$this->acl->isAllowed($this->user->user_type, 'user.create'))
    $this->redirect()->toRoute('admin_index');
    //
    $this->layout()->top_heading = 'Add User';  
    $dm = $this->getServiceLocator()->get('doctrine.documentmanager.odm_default');
    ////////////////////////////////
    $form = new UserForm();
    $update=false;
    $message='';
    if($this->getRequest()->isPost())
    {
        $post = $this->getRequest()->getPost();
        $form->setInputFilter($form->getInputFilter());
        $form->setData($post);
        //echo('<pre>');var_dump($Data);var_dump($post);echo($_POST['username']);echo($post['username']);exit;
        if($form->isValid())
        {
            $formData=$form->getData();
            $s = new User();
            $user = $dm->getRepository('Calendar\Document\User')->findOneBy(array(
                "username" => $formData['username']
            ));
            $email = $dm->getRepository('Calendar\Document\User')->findOneBy(array(
                "email" => $formData['email']
            ));
            if($user || $email)
            {
                $update=2;
                $message='User Already Exists.';    
            }
            if($post['role']=='admin')
            {
                $update=2;
                $message="Select Some Other Role."; 
            }
            else
            {
                $s->setProperty('username',$post['username']);
                $s->setProperty('password',md5($post['password']));
                $s->setProperty('email',$post['email']);
                $s->setProperty('user_type',$post['role']);
                $s->setProperty('dataentered',date('Y-m-d H:m:i'));
                $dm->persist($s);
                $dm->flush();
                //echo new Response($s->getProperty('id'));
                //
                $update=1;
                $message='User Added Successfully.';
                $form = new UserForm();
                include('module/Calendar/src/Calendar/library/class.phpmailer.php');

                $toAddress=$formData['email'];
                $mail  = new \PHPMailer();   
                $mail->IsSMTP();

                //GMAIL config
                $mail->SMTPAuth   = true;                  // enable SMTP authentication
                $mail->SMTPSecure = "ssl";                 // sets the prefix to the server
                $mail->Host ="smtp.gmail.com:465";      // sets GMAIL as the SMTP server

                $mail->Username   = "marif252@gmail.com";  // GMAIL username
                $mail->Password   = "password";            // mygmail password
                $mail->SMTPDebug = 1;
                //End Gmail

                $mail->From       = "marif252@gmail.com";
                $mail->FromName   = "Muhammad Arif";
                $mail->Subject    = "User Confirmation";
                $mail->MsgHTML("the message");

                //$mail->AddReplyTo("reply@email.com","reply name");//they answer here, optional
                $mail->AddAddress("arif.liaqat@yahoo.com","arslan");
                $mail->IsHTML(true); // send as HTML

                if(!$mail->Send()) {//to see if we return a message or a value bolean
                    echo "Mailer Error: " . $mail->ErrorInfo;
                } else  echo "Message sent!";

            }
        }
    }
    return array( 'form' => $form, 'add_message' => $message, 'update' => $update, 'user'=>$this->user );
}

how i use php mailer using gmail authentication for send email?

  • 写回答

1条回答 默认 最新

  • douliwang6896 2014-05-12 08:59
    关注

    Replace SMTP Host Part as follows :

    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465 ;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 个人通讯录管理系统 C语言 程序设计
  • ¥15 数电设计题 没有设计思路 不知道用什么芯片进行设计 求提供设计思路
  • ¥15 在动态多目标优化问题中,第一幅图展示的是问题DF6的相关定义和绘制的POS和POF图,请问图中公式PS(t)和PF(t)是如何推导的
  • ¥60 设计一种优化算法结合案例给出智能仓储四向穿梭车的调度计划
  • ¥15 Errno2:No such file or directory,在当前文件确实没有该图片,怎么解决?
  • ¥15 博世摄像头数据存储的问题(iscsi)
  • ¥15 如何实现对学生籍贯信息管理系统的选择排序
  • ¥15 写一个51单片机的时钟代码
  • ¥15 git clone报错
  • ¥15 3d-slicer超声造影动态图像导入报错