我正在使用pear以PHP发送邮件.我按照这里的例子(http://pear.php.net/manual/en/package.mail.mail.send.php).但是,我收到此错误消息.
严格标准:不应在第43行的C:\ xampp\htdocs\functions.php中静态调用非静态方法Mail :: factory()
所以我一直试图让这个严格的标准信息不显示.
这是我的代码:
$smtpinfo["host"] = "********";
$smtpinfo["port"] = "587";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = $mail_username;
$smtpinfo["password"] = $mail_password;
## This line below is causing the problem ##
$mail =& Mail::factory("smtp", $smtpinfo); // <-- Line 43
Run Code Online (Sandbox Code Playgroud)
我已经阅读了许多Stack Overflow Q&A,它们只是@在开头添加一个$mail.确实如此,它使错误消失,但我觉得这只是隐藏错误,并没有真正解决问题.
@$mail =& Mail::factory("smtp", $smtpinfo);
Run Code Online (Sandbox Code Playgroud)
我怎么不静态调用上面的方法?
甚至本页面上的文档(http://pear.php.net/manual/en/package.mail.mail.send.php)也说This function cannot be called statically.......但是他们提供的示例与我调用方法的方式相同?!
请不要回答只是添加@在前面删除严格的标准或E_ALL & ~E_STRICT...这不是一个解决方案!
我试图使用PHP脚本发送电子邮件,但我收到错误这是我的code.i我正在使用xampp netbeans和windows.我在php.ini文件中包含了pear但仍然有任何想法的错误
require_once "Mail.php";
$from = "onlinebookstorb@gmail.com";
$to = "'$email'";
$subject = "Online book store information";
$body = "This is your Id '$userID' click <a href =../index.php > here </a> to change to go to the website "; //todo change URL to make it work when it is online
$host = "ssl://smtp.gmail.com";
$port = "993";
$host = "smtp.gmail.com";
$username = "onlinebookstoreb@gmail.com";
$password = "";
$headers = array('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp', array('host' => …Run Code Online (Sandbox Code Playgroud)