CodeIgniter PHP Mail Функция не работает - PullRequest
0 голосов
/ 14 октября 2010

У меня есть скрипт, который отправляет мне письмо со страницы контактов:

if($_POST["submit"] == "Send Message")
{
    $to = "myemail@mm.com";
    $subject = "Message received from Contact Us";
    $message = "Email: ".$_POST["email"]."<br>";
    $message .= "Name: ".$_POST["name"]."<br>";
    $message .= "Message: ".$_POST["message"]."<br>";
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    echo mail($to,$subject,$message,$headers);
    $messageSent = TRUE;
}

На самом деле это эхо 1. Но я не получаю никаких писем в свой почтовый ящик (gmail). Я использую Codeigniter, я видел, что есть библиотека электронной почты, но это должно работать, не так ли?

У меня есть пара других подобных форм, я не очень хочу интегрировать эту библиотеку, если у меня уже есть нормальный PHP для этого.

Я знаю, что мой сервер способен отправлять электронные письма, потому что я делал это раньше, у меня такое ощущение, что это связано с codeigniter. Если других вариантов нет, полагаю, я могу использовать библиотеку и изменить код. Любой совет по этому поводу поможет! Спасибо:)

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

это не связано с CI, поскольку вы не используете какую-либо функциональность CI.

по какой причине вы не используете помощника по электронной почте?

в CI:

$this->load->library('form_validation');

$this->form_validation->set_rules('name', 'Name', 'trim|required');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('message', 'Message', 'required');

if($this->form_validation->run() == FALSE)
{
    $this->load->view('contact-form');
}
else
{
    $this->load->library('email');

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

    $this->email->from($email, $name);
    $this->email->to('you@domain.com');

    $this->email->subject('Subject');
    $this->email->message($message);
    if($this->email->send())
    {
        echo $this->email->print_debugger();
        //redirect('contact-us/thanks', 'location');
    }
   else
   {
    echo 'Something went wrong...';
   }

}

также обратите внимание, что mail возвращает true / false в зависимости от того, смог ли php отправить его.нет никакого способа сказать, было ли сообщение когда-либо получено.

попробуйте его в CI - посмотрите, есть ли какая-либо разница в результате

0 голосов
/ 14 октября 2010

Codeigniter не может нести ответственность за ваши проблемы, потому что mail () - это функция php, которую нельзя перезаписать, за исключением некоторой предварительной обработки необычной строки перед включением исходного файла php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...