Php Pear邮件发送不带附件的电子邮件

Php Pear邮件发送不带附件的电子邮件,php,email,sendmail,pear,Php,Email,Sendmail,Pear,我正在尝试使用带有一些附件的PHP-PEAR-mail发送邮件。我正在读取一个文本文件以获取文件名,然后使用它创建一个文件路径,我可以根据PEARaddAttachment()语法从中附加文件。但是当我收到邮件时,它没有附件 我的代码 function sendMail() { $pdf_filename = file_get_contents("/tmp/uploads/filelog/pdfFiles.txt"); $csv_filename = file_get_conte

我正在尝试使用带有一些附件的
PHP-PEAR-mail
发送邮件。我正在读取一个文本文件以获取
文件名
,然后使用它创建一个
文件路径
,我可以根据PEAR
addAttachment()
语法从中附加文件。但是当我收到邮件时,它没有附件

我的代码

function sendMail() {
    $pdf_filename = file_get_contents("/tmp/uploads/filelog/pdfFiles.txt");
    $csv_filename = file_get_contents("/tmp/uploads/filelog/csvFiles.txt");

    $text = 'Text version of email';
    $html = '<html><body>HTML version of email</body></html>';
    $csv_file = '/tmp/uploads/csv/' . $csv_filename;
    $pdf_file = '/tmp/uploads/pdf/' . $pdf_filename;
    $crlf = "\n";
    $hdrs = array (
            'From' => 'you@yourdomain.com',
            'Subject' => 'Test mime message' 
    );

    $mime = new Mail_mime ( array (
            'eol' => $crlf 
    ) );
    $mime->setTXTBody ( $text );
    $mime->setHTMLBody ( $html );
    $mime->addAttachment ( $csv_file, 'text/csv' );
    $mime->addAttachment ( $pdf_file, 'application/pdf' );
    $body = $mime->get ();
    $hdrs = $mime->headers ( $hdrs );
    $mail = & Mail::factory ( 'mail' );
    $mail->send ( 'user@sippycup.co.uk', $hdrs, $body );
    if (PEAR::isError ( $mail )) {
        echo ("<p>" . $mail->getMessage () . "</p>");
    } else {
         echo ("<p>Message successfully sent!</p>");
    }
}
sendMail();
函数sendMail(){ $pdf\u filename=文件获取内容(“/tmp/uploads/filelog/pdfFiles.txt”); $csv_filename=file_get_contents(“/tmp/uploads/filelog/csvFiles.txt”); $text='电子邮件的文本版本'; $html='电子邮件的html版本'; $csv_file='/tmp/uploads/csv/'.$csv_文件名; $pdf_file='/tmp/uploads/pdf/'.$pdf_文件名; $crlf=“\n”; $hdrs=阵列( '来自'=>'you@yourdomain.com', '主题'=>'测试mime消息' ); $mime=新邮件\u mime(数组( 'eol'=>$crlf ) ); $mime->setTXTBody($text); $mime->setHTMLBody($html); $mime->addAttachment($csv_文件,'text/csv'); $mime->addAttachment($pdf_文件,'application/pdf'); $body=$mime->get(); $hdrs=$mime->headers($hdrs); $mail=&mail::工厂('mail'); $mail->send($mail)user@sippycup.co.uk“,$hdrs,$body); if(PEAR::isError($mail)){ echo(“”$mail->getMessage()。“

”); }否则{ echo(消息已成功发送!

); } } sendMail();
为什么这不起作用?尽管我已确认服务器上存在这两个文件。

生成了一些空白,但一个简单的
trim()
修复了我的问题

$csv_trimed = trim($csv_file);
$pdf_trimed = trim($pdf_file);
.
.
.
.
.

$mime->addAttachment ( $csv_trimed, 'text/csv' );
$mime->addAttachment ( $pdf_trimed, 'application/pdf' );

文件\u get\u contents()
没有任何意义。您没有得到文件名,而是得到一个包含所有内容的字符串。因此,当您制作
$csv_file='/tmp/uploads/csv/'时$csv_文件名
那不是文件路径。@Twisty我从文本文件中获取内容,这些文本文件具有pdf和csv文件的文件名。字符串就是文件名!1文件名?5个文件名?20? 您将获得文件的所有内容。发布一个文本文件的示例。@Twisty每个文本文件的一个文件名我已经用echo验证了路径,这是一个有效的路径!对于一个文件名来说似乎需要做很多工作,但我想我明白了。其余的看起来像是示例中的教科书
addAttachment()
确实会抛出错误,因此在附加时可以执行try/catch,并查看是否抛出错误:
if(PEAR::isError($mime)){