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属性(我假设这是控制器的代码)没有设置,这可能是因为库没有加载
参见中的示例。谢谢,我更新了我的帖子,请帮我解决新的错误。好的,你是新来的。你通常不会在同一个问题区问新问题,而是开始一个新问题。也就是说我给了你答案,请给我的答案打上金色的对勾,因为我解决了你的第一个问题。我想你应该为这个问题再问一个问题,但我不确定。。。无论如何这似乎是一个服务器问题。看或看。