Php 由于非对象指定错误,发送电子邮件失败

Php 由于非对象指定错误,发送电子邮件失败,php,codeigniter,Php,Codeigniter,我在使用以下代码发送电子邮件时遇到了一个小问题 $username=$p['register_name']; $email=$p['register_email']; $activation=md5(uniqid(rand(),true)); $password=md5($p['register_password']); $member_data=array ( 'name'=> $username,

我在使用以下代码发送电子邮件时遇到了一个小问题

    $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();
    }
$username=$p['register_name'];
$email=$p['register_email'];
$activation=md5(uniqid(rand(),true));
$password=md5($p['register_password']);
$member\u data=数组
(
'name'=>$username,
“email”=>$email,
“通过”=>$password,
“激活”=>$activation
);
$bSuccess=$this->blog->insert_member($member_data);
如果($b成功)
{
$msg=“单击以下URL激活您的帐户:
http://myforums.com/activation.php?email=“.urlencode($email)。”&key=“.$activation; $from=“有效_email@myforum.com"; $this->email->from($from,‘论坛管理员’); $this->email->to($email); $this->email->subject(“帐户激活”); $this->email->message($msg); 如果(!$this->email->send()) { 回显“无法发送激活电子邮件”; } 其他的 { 回显“已将激活链接发送到您的“$email.”。按照该链接激活您的帐户”; } //echo$this->email->print_debugger(); }
运行时错误为

遇到PHP错误严重性:注意

消息:未定义的属性:登录::$email

文件名:forums/login.php

电话号码:20

致命错误:对中的非对象从()调用成员函数 第20行的login.php

我想我从一开始就定义了“email”变量。这很奇怪/

更新 我在构造函数中加载了电子邮件库,然后一切正常 然而,一个新的错误如下所示:

遇到PHP错误严重性:警告

Message:mail()[function.mail]:SMTP服务器响应:553 5.5.4 ... 发件人地址需要真实域名

文件名:libraries/Email.php

电话号码:1553


$this->email
看起来像是您需要首先加载的助手。很高兴看到整个文件/函数

$this->load->library('email')才能使用$this->email->from

下一个答案是

有效的_email@myforum.com


不是有效的电子邮件地址。我假设myforum.com没有反向解析DNS,而您使用的服务器是反向解析DNS。

您是否加载了电子邮件库

$this->load->library('email');
错误是因为$this的$email属性(我假设这是控制器的代码)没有设置,这可能是因为库没有加载


参见中的示例。

谢谢,我更新了我的帖子,请帮我解决新的错误。好的,你是新来的。你通常不会在同一个问题区问新问题,而是开始一个新问题。也就是说我给了你答案,请给我的答案打上金色的对勾,因为我解决了你的第一个问题。我想你应该为这个问题再问一个问题,但我不确定。。。无论如何这似乎是一个服务器问题。看或看。