2012-02-10 10 views
0

非オブジェクトのspecifiyingエラーとして失敗し送信メールは、私は次のコードを使用して電子メールで送信して小さな問題に遭遇してきた

$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="[email protected]"; 
     $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(); 
    } 

ランタイムエラーは、私が定義されていると思います

A PHP Error was encountered Severity: Notice

Message: Undefined property: Login::$email

Filename: forums/login.php

Line Number: 20

Fatal error: Call to a member function from() on a non-object in login.php on line 20

のメールです'最初から変数。この私がコンストラクタで電子メールのライブラリをロードし、すべてはその後、まだ細かい の作品次のように、新しいエラーが現れ、

A PHP Error was encountered Severity: Warning

Message: mail() [function.mail]: SMTP server response: 553 5.5.4 ... Real domain name required for sender address

Filename: libraries/Email.php

Line Number: 1553

答えて

2

$this->emailはあなたのヘルパーのように見える奇妙な/

がUPDATE です最初に読み込む必要があります。あなたは

からの$ this - >メール:>を使用することができますし、thenext答えは

[email protected]

である前に定義するためにファイル全体/関数に

$this->load->library('email');ニーズを見ていいだろう

は有効なメールアドレスではありません。私はmyforum.comがDNSの解決を逆転させず、使用しているサーバーがDNSを逆解決していると仮定しています。

+0

ありがとうございました投稿を更新しました。新しいエラー – user1125524

+0

であなたを助けてください、あなたは新しいです。あなたは通常、同じ質問ブロックで新しい質問をしないで、新しい質問を始めます。私はあなたに最初の問題を解決したので、私はあなたに答えを与えたと言った、私の答えに金のチェックマークを与えてください。 – thenetimp

0

メールライブラリをロードしましたか? $この$メールプロパティが(私はこれは、コントローラのためのコードであると仮定しています)に設定されていないため

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

誤差があり、そしてライブラリがロードされていないので、それはおそらくです。

docsの例を参照してください。

+0

ありがとうございますが、私はまだ問題があります。上記の私の投稿を更新してください。 – user1125524

+0

あなたはその問題の別の質問を開くべきだと思いますが、とにかくわかりません。それはサーバーの問題のようです。 [this](http://3xsp.blogspot.com/2011/05/real-domain-name-required-for-sender.html)または[this](http://selliott.org/node/40)を参照してください。 。 –

関連する問題