当前位置: 首页 > 知识库问答 >
问题:

php邮件附件

东郭翰音
2023-03-14

我一直在使用此脚本向某些员工发送电子邮件,但由于我的系统发生了更改,我现在必须随电子邮件发送附件,我尝试了多个代码来完成此任务,但都没有成功。。。我仍然收到电子邮件,但没有附件,这在这种情况下是毫无意义的,我已经把我正在使用的脚本放在下面

我已经删除了我使用的真实地址和smtp服务器

    require("PHPMailer/class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();    // set mailer to use SMTP
$mail->Host = "SMTP.SErver.com";    

$mail->From = "From@email.com";    
$mail->FromName = "HCSC";  
$mail->AddAddress("To@email.com", "Example"); 
$mail->AddReplyTo("Reply@email.com", "Hcsc"); 

$mail->WordWrap = 50;    
$mail->IsHTML(false);    

$mail->Subject = "AuthSMTP Test";
$mail->Body    = "AuthSMTP Test Message!";
$mail->AddAttachment("matt.txt"); //this is basicly what i am trying to attach as a test but will be using excel spreadsheets in the production

if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

echo "Message has been sent";

我也尝试了一些其他的emtods附加的文件,但似乎没有工作任何帮助是大大的

共有3个答案

东门晨
2023-03-14

好的,这还没有结束,所以我想既然我有完全相同的问题,我会给你我的解决方案,为我工作。我相信之前的邮件是对的。您需要确定文件的绝对路径。这并不总是一件容易的事情,尤其是如果您在共享服务器上操作。无论如何,我在我的页面上嵌入了以下代码,它呼应了到该页面的确切路径。从那以后,很容易就能解决如何将一个级别放入保存我想附加的文件的目录中。

  'var_dump(stream_resolve_include_path("Thankyou.php"));'

只需复制并粘贴该行并将其放入您的页面,插入您的页面名称并替换“谢谢”。我插入的php(保留语音标记)。运行页面并检索您的绝对路径。只需将其删除,并在PHPMailer的AddAttachment段中插入新路径。

齐起运
2023-03-14

您需要提供文件的完整路径,文件名函数除了两个或三个参数之外

// Setup mail class, recipients and body
$mailer->AddAttachment('/home/mywebsite/public_html/file.zip', 'file.zip');

http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html#File_Attachments_PHP_Mail_PHPMailer

寿卜鹰
2023-03-14

您的代码看起来相当简单,语法正确。脚本是否返回任何错误消息?

如果您收到的消息没有任何问题,那么问题似乎不在代码中。

需要检查的几件事:

>

  • 确保文件"matt.txt"是可读的,并且路径是正确的。文件的路径需要包含在$mail-

    require 'PHPMailer/PHPMailerAutoload.php';
    $mail = new PHPMailer(true);
    try {
    
      $mail->IsSMTP();    // set mailer to use SMTP
      $mail->Host = "SMTP.SErver.com";    
    
      $mail->From = "From@email.com";    
      $mail->FromName = "HCSC";  
      $mail->AddAddress("To@email.com", "Example"); 
      $mail->AddReplyTo("Reply@email.com", "Hcsc"); 
    
      $mail->WordWrap = 50;    
      $mail->IsHTML(false);    
    
      $mail->Subject = "AuthSMTP Test";
      $mail->Body    = "AuthSMTP Test Message!";
      $mail->AddAttachment("matt.txt");
      echo "Message Sent OK<p></p>\n";
    
    } catch (phpmailerException $e) {
    
      echo $e->errorMessage(); //Pretty error messages from PHPMailer
    
    } catch (Exception $e) {
    
      echo $e->getMessage(); //Boring error messages from anything else!
    
    }
    

  •  类似资料:
    • 我正在尝试使用php中的amazon SES sendmail()函数在邮件中发送pdf附件。我写了一个函数,它以MIME类型作为内容并发送邮件。但我无法在邮件中发送附件。文件路径和所有其他值看起来都很完美。 功能代码如下: 邮件已成功发送给用户,但没有附件。请帮忙。

    • 问题内容: 我遇到了一个问题:直到今天,我使用包含以下内容的标头使用PHP发送HTML邮件 现在,我添加了添加附件的功能。为此,我不得不将此行更改为 现在,使用,邮件的其余部分(即普通文本)将显示为文本/纯文本。我怎么能知道附件有效并且邮件文本仍然是HTML? 问题答案: 要发送带有附件的电子邮件,我们需要使用multipart / mixed MIME类型,该类型指定混合类型将包含在电子邮件中。

    • 我目前的邮件有问题。它发送的很好,我收到了一个带有名称和大小的附件,但无法打开。另外,我已经尝试了PHPMailer,SMTP在我的服务器上不起作用,所以请不要建议我使用它:) 抱歉关于法语变量名称和错误消息,但我不认为这将是有用的。当然,如果你需要,我可以翻译。 这是一段处理我附件的代码。

    • 问题内容: 我似乎找不到我编写的应该发送带有附件的电子邮件的php函数的问题。我已经为此苦苦挣扎了一段时间了。 编辑 问题是邮件的消息与文件混合在一起并作为附件发送。 问题答案: Artefacto让我更加关注输出,并且找到了解决方法:

    • 问题内容: 有没有办法将图像附加到用PHP创建的html格式的电子邮件中? 我们需要确保在发送给可能在阅读电子邮件时无法访问Internet的客户的电子邮件上带有公司徽标(显然,他们可以下载文件)。 问题答案: 尝试使用PEARMail_Mime软件包,该软件包可以为您嵌入图像。 您需要使用addHTMLImage()方法并传递内容ID(cid),这是一个唯一的文本字符串,您还将在img的src属

    • 本文向大家介绍php简单实现发送带附件的邮件,包括了php简单实现发送带附件的邮件的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php简单实现发送带附件的邮件。分享给大家供大家参考。具体如下: 下面是静态html代码: sendmail.php文件代码: 希望本文所述对大家的php程序设计有所帮助。