0

我有一些问题,这意味着我没有收到来自表单的邮件...

代码如下所示:

public function send_email(){
        $this->load->library("form_validation");


        $this->form_validation->set_rules("fullName", "Full Name", "required|alpha|xss_clean");
        $this->form_validation->set_rules("email", "Email Address", "required|valid_email|xss_clean");
        $this->form_validation->set_rules("message", "Message", "required|xss_clean");

            if($this->form_validation->run() == FALSE){
                $data["message"] = "";
                $this->load->view("site_header");
                $this->load->view("site_nav");
                $this->load->view("content_comment", $data);
                $this->load->view("site_footer");
            }else{
                $data["message"] = "The email was successfully been sent!";


                $this->load->library("email");


                $this->email->from(set_value("email"), set_value("fullName"));
                $this->email->to("paulharbuz@gmail.com");
                $this->email->subject("Message from our form");
                $this->email->message(set_value("message"));

                $this->email->send();

                echo $this->email->print_debugger();


                $this->load->view("site_header");
                $this->load->view("site_nav");
                $this->load->view("content_comment", $data);
                $this->load->view("site_footer");
            }
    }

我得到一个看起来像这样的错误:

无法使用 PHP mail() 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。**

这是来自我的 php.ini 文件吗?

我已经在http://php.net/manual/en/ref.mail.php上设置了我的文件阅读这部分

我找到了解决方案:在 config: email.php 中创建一个看起来像这样的文件

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| EMAIL CONFING
| -------------------------------------------------------------------
| Configuration of outgoing mail server.
| */

$config['wordwrap'] = FALSE;
$config['mailtype'] = 'html';
$config['crlf'] = '\r\n';
$config['charset']='utf-8';
$config['newline']="\r\n";
$config['priority']=1;
$config['protocol']='smtp';
$config['smtp_host']='ssl://smtp.googlemail.com';
$config['smtp_port']='465';
$config['smtp_timeout']='30';
$config['smtp_user']='gcc.sandbox@gmail.com';
$config['smtp_pass']='qwaszx12';
$config['newline']="\r\n";

/* End of file email.php */
/* Location: ./system/application/config/email.php */

然后将其加载到您的主控制器中,例如:$this->email->initialize($this->config->config);就是这样!

4

3 回答 3

0
$string = 'mail content';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: z' . "\r\n";
mail(email, 'subject', $string, $headers);
于 2013-01-24T08:55:12.953 回答
0

只需将此代码添加到您的帮助文件中,并在您要发送邮件时调用该函数,请使用以下方法发送电子邮件...

 function send_mail($to,$subject,$message) {
    $config = Array(
        'protocol'  => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_port' => 465,
        'smtp_user' => 'xxx@xxxx',
        'smtp_pass' => 'xxxx',
        'mailtype'  => 'html', 
        'charset'   => 'iso-8859-1'
    );
    $this->load->library('email',$config);
    $this->email->set_newline("\r\n");

    $this->email->from($config['smtp_user'],"Your name");
    $this->email->to($to);
    $this->email->subject($subject);  
    $this->email->message($message);
    $result = $this->email->send();
    return $result;
}
于 2013-01-24T11:16:24.617 回答
0

如果您使用 gmail,我想在其中添加更多知识,因此这不能通过您自己的密码来完成,可以通过使用特定的 Google 密码来完成。如果您收到需要应用程序特定密码之类的错误。而不是像我一样在谷歌中搜索并获取一个并在下面的字段中输入。 $config['smtp_pass']='应用程序专用密码';

于 2013-08-07T21:00:49.643 回答