0

我试图让 php 在创建帐户时向新用户发送激活电子邮件。我的问题不在于此过程的代码,而在于 php 发送电子邮件。

到目前为止,我已经在安装了 Kubuntu 桌面的 Ubuntu 服务器 12.04 上安装了 Xampp。我还使用该sudo apt-get install php-pear命令安装了 pear。

最后我安装了postfix。当我在浏览器中加载我的页面时,我收到以下错误:

不推荐使用:在第 55 行的 /opt/lampp/lib/php/Mail.php 中不推荐使用通过引用分配 new 的返回值

不推荐使用:在第 135 行的 /opt/lampp/lib/php/Mail.php 中不推荐使用通过引用分配 new 的返回值

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 167 行 /opt/lampp/lib/php/Mail/smtp.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 290 行 /opt/lampp/lib/php/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::raiseError(),假设 $this 来自第 168 行 /opt/lampp/lib/php/Mail/smtp.php 中的不兼容上下文

感谢您的回复!尽管继承了我的代码,但我仍然遇到一些问题:

<?php 
include("Mail.php"); 

$recipients = "noreply.njmedia@gmail.com"; 

$headers["From"]    = "noreply.njmedia@gmail.com"; 
$headers["To"]      = "noreply.njmedia@gmail.com"; 
$headers["Subject"] = "Test message"; 

$body = "TEST MESSAGE!!!"; 

$params["host"] = "smtp.google.com"; 
$params["port"] = "465"; 
$params["auth"] = true; 
$params["username"] = "noreply.njmedia@gmail.com"; 
$params["password"] = "gmailpassword(my real password is entered here)"; 

// Create the mail object using the Mail::factory method 
$mail_object =& Mail::factory("smtp", $params); 

$mail_object->send($recipients, $headers, $body); 
?>

这是调试的结果:

object(PEAR_Error)#4 (8) {
  ["error_message_prefix"]=> string(0) ""
  ["mode"]=> int(1)
  ["level"]=> int(1024)
  ["code"]=> NULL
  ["message"]=> string(52) "unable to connect to smtp server smtp.google.com:465"
  ["userinfo"]=> NULL
  ["backtrace"]=> array(3) { [0]=> array(6) { ["file"]=> string(27) "/opt/lampp/lib/php/PEAR.php" ["line"]=> int(533) ["function"]=> string(10) "PEAR_Error" ["class"]=> string(10) "PEAR_Error" ["type"]=> string(2) "->" ["args"]=> array(5) { [0]=> string(52) "unable to connect to smtp server smtp.google.com:465" [1]=> NULL [2]=> int(1) [3]=> int(1024) [4]=> NULL } } [1]=> array(7) { ["file"]=> string(32) "/opt/lampp/lib/php/Mail/smtp.php" ["line"]=> int(169) ["function"]=> string(10) "raiseError" ["class"]=> string(4) "PEAR" ["object"]=> object(Mail_smtp)#1 (10) { ["host"]=> string(15) "smtp.google.com" ["port"]=> string(3) "465" ["auth"]=> bool(true) ["username"]=> string(25) "noreply.njmedia@gmail.com" ["password"]=> string(28) "Fakepasswordforstackoverflow" ["localhost"]=> string(9) "localhost" ["timeout"]=> NULL ["verp"]=> bool(false) ["debug"]=> bool(false) ["sep"]=> string(2) " " } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(52) "unable to connect to smtp server smtp.google.com:465" } } [2]=> array(7) { ["file"]=> string(32) "/media/HDD2/NJmedia/mailtest.php" ["line"]=> int(23) ["function"]=> string(4) "send" ["class"]=> string(9) "Mail_smtp" ["object"]=> object(Mail_smtp)#1 (10) { ["host"]=> string(15) "smtp.google.com" ["port"]=> string(3) "465" ["auth"]=> bool(true) ["username"]=> string(25) "noreply.njmedia@gmail.com" ["password"]=> string(28) "Fakepasswordforstackoverflow" ["localhost"]=> string(9) "localhost" ["timeout"]=> NULL ["verp"]=> bool(false) ["debug"]=> bool(false) ["sep"]=> string(2) " " } ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> string(25) "noreply.njmedia@gmail.com" [1]=> array(3) { ["From"]=> string(25) "noreply.njmedia@gmail.com" ["To"]=> string(25) "noreply.njmedia@gmail.com" ["Subject"]=> string(12) "Test message" } [2]=> string(15) "TEST MESSAGE!!!" } } }
  ["callback"]=> NULL
}
4

1 回答 1

1

使用命令:whereis pear

它会给你梨的道路。

sudo  <the path where Pear is located>  install mail <br/>
sudo  <the path where Pear is located>  install Net_SMTP <br/>
sudo  <the path where Pear is located>  install Auth_SASL <br/>
sudo  <the path where Pear is located>  install mail_mime <br/>

对我来说是

sudo /opt/lampp/bin/pear install mail <br/>
sudo /opt/lampp/bin/pear install Net_SMTP <br/>
sudo /opt/lampp/bin/pear install Auth_SASL <br/>
sudo /opt/lampp/bin/pear install mail_mime <br/>

请重新启动您的 XAMP 服务器

启动灯

sudo /opt/lampp/lampp start

停止兰普

sudo /opt/lampp/lampp stop

谢谢

于 2012-11-03T11:48:49.263 回答