梨邮件无法正常工作,没有任何错误消息

时间:2013-07-21 18:42:46

标签: php smtp pear

我正在尝试在hostgator服务器上使用Pear邮件。首先我使用cpanel安装了邮件包,并且已经安装了net_smpt,但是当我需要Mail.php类时,它坚持要求Net文件夹在Mail文件夹中 - 它们之前都处于同一级别。所以我在邮件中移动了Net并且它停止了抱怨 - 但也许我只是搞砸了一切(也许不是:让我知道)。

这是我的测试脚本,主要是从教程中复制的:

<?php
echo 'Test Pear<br>';

require_once("/home3/myaccountname/php/Mail.php");

$from = "info@mydomain.com";
$to = "myrealemail@gmail.com";
$subject = "Test pear";
$body = "Lorem ipsum dolor sit amet, consectetur adipiscing elit...";

$params['host'] = 'gator3015.hostgator.com';
$params['port'] = '465';
$params['username'] = 'info@mydomain.com';
$params['password'] = 'mypassword';
$params['debug'] = 'true';

$headers = array('From' => $from, 'To' => $to, 'Subject' => $subject);

$smtp = Mail::factory('smtp', $params);

echo 'good so far';

$mail = $smtp->send($to, $headers, $body);

echo 'Still there';

if ( PEAR::isError($mail) ) {
    echo("<p>Error sending mail:<br/>" . $mail->getMessage() . "</p>");
} else {
    echo("<p>Message sent.</p>");
}
?>

SMTP参数已使用codeigniter电子邮件类进行测试,他们成功发送电子邮件(但由于cronjobs和codeigniter拒绝为我工作,我正在尝试使用Pear Mail)。它需要SSL,但显然默认情况下是Pear Mail。

我确保为我的测试显示了PHP错误消息。发生的事情是,除了“静止”之外,我看到了所有的回声,所以当我打电话给$smtp->send()时出现了问题。但是,尽管将debug设置为true,但不会显示任何错误消息。 if(PEAR::isError($mail))似乎也没有任何影响。并且没有发送电子邮件。

所以我有点不知道出了什么问题。有什么想法吗?

更新:主机由于某种原因不支持SMTP,这解释了为什么我有这个奇怪的问题。使用Mandrill工作正常。

1 个答案:

答案 0 :(得分:0)

试试这个例子,

<?php
 require_once "Mail.php";

 $from = "Sandra Sender <sender@example.com>";
 $to = "Ramona Recipient <recipient@example.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 $host = "mail.example.com";
 $username = "smtp_username";
 $password = "smtp_password";

 $headers = array ('From' => $from,
   'To' => $to,
   'Subject' => $subject);
 $smtp = Mail::factory('smtp',
   array ('host' => $host,
     'auth' => true,
     'username' => $username,
     'password' => $password));

 $mail = $smtp->send($to, $headers, $body);

 if (PEAR::isError($mail)) {
   echo("<p>" . $mail->getMessage() . "</p>");
  } else {
   echo("<p>Message successfully sent!</p>");
  }
 ?>

也是这一个,

<?php
 require_once "Mail.php";

 $from = "Sandra Sender <sender@example.com>";
 $to = "Ramona Recipient <recipient@example.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 $host = "ssl://mail.example.com";
 $port = "465";
 $username = "smtp_username";
 $password = "smtp_password";

 $headers = array ('From' => $from,
   'To' => $to,
   'Subject' => $subject);
 $smtp = Mail::factory('smtp',
   array ('host' => $host,
     'port' => $port,
     'auth' => true,
     'username' => $username,
     'password' => $password));

 $mail = $smtp->send($to, $headers, $body);

 if (PEAR::isError($mail)) {
   echo("<p>" . $mail->getMessage() . "</p>");
  } else {
   echo("<p>Message successfully sent!</p>");
  }
 ?>