【问题标题】:CodeIgniter emailCodeIgniter 电子邮件
【发布时间】:2016-05-27 11:21:51
【问题描述】:

我正在尝试使用 codeigniter 发送电子邮件。无论如何我可以在任何电子邮件中发送消息,例如 gmail、yahoo 或 outlook.com?这是我到目前为止所拥有的:

public function sendmail()
{
    $config['protocol'] = 'sendmail';
    $config['mailpath'] = '/usr/sbin/sendmail';
    $config['charset'] = 'iso-8859-1';
    $config['wordwrap'] = TRUE;


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

    $this->email->from('user@gmail.com', 'sender name');
    $this->email->to('test@gmail.com');
    $this->email->subject('Your Subject');
    $this->email->message('ed wow sir');
    if ($this->email->send())
        echo "nasend na!";
    else
        echo $this->email->print_debugger();
}

它显示错误:

退出状态码:1 无法打开到 Sendmail 的套接字。请检查 设置。无法使用 PHP Sendmail 发送电子邮件。您的服务器可能 未配置为使用此方法发送邮件。

【问题讨论】:

    标签: php codeigniter email


    【解决方案1】:

    请与您的托管服务提供商联系以发送邮件。您可以使用邮件功能检查邮件是否被触发。

    在 Codeigniter 中而不是发送邮件尝试使用 smtp 协议并使用 gmail 帐户进行测试。

    【讨论】:

    • 我已经尝试过 smtp 协议和 gmail,它可以在本地主机上运行,​​但是如果我想将它发送到 yahoo 或 Outlook,并在我的服务器上也可以,但它没有用 :(
    • 我的意思是使用您的任何 gmail 帐户作为 smtp 凭据并尝试将电子邮件发送到 yahoo 或 Outlook 检查它是否工作
    • @karthi 为什么不通过单击答案下方的编辑按钮来重新编辑一个答案,而不是创建多个答案。
    • 感谢它的工作,但是如果我想在我的服务器上升级它,无论如何不要使用 gmail 帐户作为 smtp 凭据?我应该在 smtp 用户和密码中输入什么?
    • 在服务器中使用默认发送邮件我还没有为你尝试过我会尝试...然后发布
    【解决方案2】:

    我正在使用此代码:

    示例代码为:

    $config = Array(
                      'protocol' => 'smtp',
                    'smtp_crypto' => 'tls',
                    'smtp_host' => 'xxx',
                    'smtp_port' => 587,
                    'smtp_user' => 'xxx',
                    'smtp_pass' => 'xx',
                     'smtp_timeout' => '5',
                     'smtp_auth' => true,
                      'mailtype'  => 'html', 
                    'charset'   => 'utf-8',
                    'wordwrap' => TRUE,
                    'validate'        => TRUE,
                                   'priority'       => 1,                      
                                   'crlf'         => "\r\n",   
                                  'newline' => "\r\n",
                                     'bcc_batch_mode' => FALSE,
                                   'bcc_batch_size' => 200
    
                );
    
            $this->load->library('email', $config);
            $this->email->clear();
            $this->email->from($from, $fromname);
            $this->email->to($to); $this->email->set_mailtype("html");
    
    
            $this->email->subject($subject);  
            $this->email->message($body);
            if (!$this->email->send())
                show_error($this->email->print_debugger());
                else
            echo 'Your e-mail has been sent!'; 
    

    【讨论】:

      【解决方案3】:

      如果您使用的是 localhost,您可能还需要在那里设置您的 sendmail 配置

      Tutorial XAMPP 和 WAMP 的 Sendmail 后端设置

      当您需要通过 google 发送邮件时

      $mail_config = array(
          'protocol' => 'smtp',
          'smtp_host' => 'ssl://smtp.googlemail.com',
          'smtp_port' => 465,
          'smtp_user' => '********',
          'smtp_pass' => '********',
          'mailtype'  => 'html', 
          'charset'   => 'iso-8859-1'
      );
      
      $this->load->library('email', $mail_config);
      
      $this->email->from('your@example.com', 'Your Name');
      $this->email->to('someone@example.com'); 
      $this->email->subject('Email Test');
      $this->email->message('Testing the email class.');
      
      
      if ($this->email->send() == TRUE) {
      
         // Redirect to a success page or load a view or some thing
         redirect('success_page'); 
      
      } else {
         echo $this->email->print_debugger();
         exit;
      }
      

      代码点火器Email Class

      雅虎

      'smtp_host' => 'ssl://smtp.mail.yahoo.com'
      

      【讨论】:

        猜你喜欢
        • 2018-08-06
        • 2015-10-08
        • 2013-08-02
        • 2017-12-07
        • 2020-07-31
        • 2017-11-28
        • 2011-06-12
        • 2013-01-07
        • 2012-05-04
        相关资源
        最近更新 更多