我正在努力学习网络开发。 我买了一个域名说" test.com"并托管了它。
我正在尝试实施一项功能,以便从网站发送电子邮件。
服务器上的特定php文件如下所示:
<?php
require_once "Mail.php";
$from = '<xyz.gmail.com>';
$to = '<xyz@abc.com>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => 'xyz@gmail.com',
'password' => 'somePassowrd'
));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<p>Message successfully sent!</p>');
}
?>
如果我从PC的终端运行代码,也会发送电子邮件。
在我的电脑上,访问localhost / testemail.php或0.0.0.0/testemail.php也会成功发送电子邮件。
现在,如果我进入托管并运行文件的计算机(Ubuntu 14.04服务器),那么#tes; phptetemail.php&#34;然后电子邮件成功发送。
最后,我还尝试使用以下命令从服务器终端拨打网址: xdg-open http://localhost/testemail.php 甚至在那种情况下,我收到一封关于xyz@abc.com的电子邮件
但是,从浏览器中制作test.com/testemail.php会导致500内部服务器错误。
我已尝试点击test.com/someotherfile.php?somequeryparams并获得预期的响应。所以服务器运行正常,但发送电子邮件不起作用。
请建议我能做些什么。
谢谢。
答案 0 :(得分:1)
我发现在运行php代码时无法访问从外部浏览器调用的pear包。 我在apache2和php包含路径中添加了梨的位置。
这解决了它。