При отправке электронной почты произошла ошибка, связанная с указанием не-объекта - PullRequest
0 голосов
/ 10 февраля 2012

У меня возникла небольшая проблема с отправкой электронной почты с использованием следующего кода

    $username=$p['register_name'];   
    $email=$p['register_email'];
    $activation=md5(uniqid(rand(),true));
    $password=md5($p['register_password']);

    $member_data=array
    (
        'name'=> $username,
        'email'=> $email,
        'pass'=> $password,
        'activation' => $activation
    );

    $bSuccess=$this->blog->insert_member($member_data);
    if($bSuccess)
    {
        $msg="Click the following URL to activate your account :<br/>
                http://myforums.com/activation.php?email=".urlencode($email)."&key=".$activation;
        $from="valid_email@myforum.com";
        $this->email->from($from, 'Forums Administrator');      
        $this->email->to($email);
        $this->email->subject("Account activation");
        $this->email->message($msg);
        if(!$this->email->send())
        {
            echo "Unable to send activation email";   
        }
        else
        {
            echo "An activation link has been sent to your ".$email.".Follow that link to activate your account";
        }
        //echo $this->email->print_debugger();
    }

ошибка времени выполнения

Произошла ошибка PHP. Серьезность: уведомление

Сообщение: неопределенное свойство: Логин :: $ email

Имя файла: forums / login.php

Номер строки: 20

Неустранимая ошибка: вызов функции-члена из () для необъекта в login.php в строке 20

Я думаю, что я определил переменную 'email' с самого начала. Это странно /

UPDATE Я загрузил библиотеку электронной почты в конструктор, и тогда все работает нормально Тем не менее, новая ошибка отображается следующим образом:

Произошла ошибка PHP. Серьезность: предупреждение

Сообщение: mail () [function.mail]: SMTP-ответ сервера: 553 5.5.4 ... Требуется реальное доменное имя для адреса отправителя

Имя файла: library / Email.php

Номер строки: 1553

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

$this->email выглядит как помощник, который вам нужно загрузить первым.Было бы неплохо увидеть весь файл / функцию

$this->load->library('email'); необходимо определить, прежде чем вы сможете использовать $ this-> email-> from

и следующий ответ будет

valid_email@myforum.com

не является действительным адресом электронной почты.Я предполагаю, что myforum.com не разрешает обратное разрешение DNS и сервер, который вы используете, разрешает обратное разрешение DNS.

0 голосов
/ 10 февраля 2012

Вы загрузили библиотеку электронной почты?

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

Ошибка в том, что свойство $ email $ this (я предполагаю, что это код контроллера) не установлено, ивероятно, потому что библиотека не загружена.

См. пример в документах .

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