使用phpmailer类在电子邮件中发送附件:无法访问文件

时间:2014-05-31 00:47:22

标签: php phpmailer email-attachments

我在“sendMail”下面有这个功能,用phpmailer类发送电子邮件。 它的工作正常,我已经发送了成功的电子邮件。

但是现在我试图在我的函数中添加一个附件,所以我将其添加到我的代码中:

$mail->AddAttachment(BASE.'/'.'images/2014/05/image4.jpg','image 4');

我有这个错误:

无法访问文件: localhost / project / images / 2014/05 / image4.jpg

但是这个目录正是我图像的正确目录,所以我不明白为什么会发生这种错误。

有人知道我在这里遗失了什么吗?

我发送电子邮件的功能:

 function sendMail($subject,$message,$emissor,$emissorName,$receptor,$receptorName, $reply = NULL, $replyName = NULL){

    require_once('mail/class.phpmailer.php'); 

    $mail = new PHPMailer(); 
    $mail->IsSMTP(); 
    $mail->SMTPAuth = true; 
    $mail->IsHTML(true);
    $mail->SMTPSecure = "tls"; 
    $mail->Host = MAILHOST; 
    $mail->Port = MAILPORT; 
    $mail->Username = MAILUSER;
    $mail->Password = MAILPASS;    
    $mail->From = utf8_decode($emissor); 
    $mail->FromName = utf8_decode($emissorName); 
    $mail->Subject = utf8_decode($subject); 
    $mail->Body = utf8_decode($message);
    $mail->AddAddress(utf8_decode($receptor),utf8_decode($receptorName)); 
    $mail->AddAttachment(BASE.'/'.'images/2014/05/image4.jpg','image 4');

    if($reply != NULL){
    $mail->AddReplyTo(utf8_decode($reply),utf8_decode($replyNome)); 
    }

    if($mail->Send()){
    return true;
    }
    else{
    return false;
    }
}

我的服务器访问文件,当我访问此网址时:htt://localhost/projeto/banner-imagens/2014/05/bib_idh.jpg,我得到了我的图片!

1 个答案:

答案 0 :(得分:1)

您的路径不正确。删除BASE并将其替换为项目文件夹的实际文件路径。根据脚本输入完整路径或相对路径。

  

从文件系统上的路径添加附件。   http://phpmailer.github.io/PHPMailer/classes/PHPMailer.html#method_addAttachment

如果不解决它,也要确保文件可读。这意味着设置了文件权限,以便Web服务器可以访问该文件。