使用 PEAR 邮件发送测试消息时出现错误消息
Posted
技术标签:
【中文标题】使用 PEAR 邮件发送测试消息时出现错误消息【英文标题】:Error message on sending test message with PEAR mail 【发布时间】:2012-07-22 07:48:09 【问题描述】:我已经安装了最新版本的 PEAR Mail 和 Mail_Mime,我正在尝试使用来自 this page 的以下测试电子邮件发送测试消息,即
<?
include('/home/****/php/Mail.php');
include('/home/****/php/Mail/mime.php');
// Constructing the email
$sender = "**** <info@****.com>"; // Your name and email address
$recipient = "**** <****@gmail.com>"; // The Recipients name and email address
$subject = "Test Email"; // Subject for the email
$text = 'This is a text message.'; // Text version of the email
$html = '<html><body><p>This is a html message</p></body></html>'; // HTML version of the email
$crlf = "\n";
$headers = array(
'From' => $sender,
'Return-Path' => $sender,
'Subject' => $subject
);
// Creating the Mime message
$mime = new Mail_mime($crlf);
// Setting the body of the email
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$body = $mime->get();
$headers = $mime->headers($headers);
// Sending the email
$mail =& Mail::factory('mail');
$mail->send($recipient, $headers, $body);
?>
消息没有被发送。检查我的错误日志:
[24-Jul-2012 02:14:50] PHP 致命错误:调用未定义的方法 Mail_mimePart::encodeHeader() 在 /home/**/php/Mail/mime.php 上 第 1330 行
我想知道是否有人知道此错误消息与什么相关以及可以做些什么? mime.php 中的第 1330 行是该函数的第 4 行:
function encodeHeader($name, $value, $charset, $encoding)
$mime_part = new Mail_mimePart;
return $mime_part->encodeHeader(
$name, $value, $charset, $encoding, $this->_build_params['eol']
);
【问题讨论】:
不应该被静态调用。你确定这是正确的文件吗,有一个带有“return Mail_mimePart::encodeHeader(”的版本,但这不是你显示的内容。 您是如何安装 Mail 和 Mail_mime 的?您应该可以使用:include_once("Mail/mime.php");
来调用它。 pear install Mail
和 pear install Mail_mime
应该是您安装它们的方式。
它们是使用 cPanel 安装的。
@David 使用include_once("Mail/mime.php");
解决了这个问题,所以如果您想将其添加为答案,我可以将其标记为正确。谢谢。
【参考方案1】:
include_once("Mail/mime.php");
应该是你的包括。
【讨论】:
以上是关于使用 PEAR 邮件发送测试消息时出现错误消息的主要内容,如果未能解决你的问题,请参考以下文章
提交时出现 SMTP 邮件服务器 (sendgrid) 错误
使用 Devise 发送 PostMark 邮件时出现 SSL 错误