PHPMailer “Impossible D'Accéder Au Fichier:”

Je suis en train d'envoyer un fichier qui existe sur mon serveur à l'aide de PHPMailer. Lorsque j'exécute ce code, j'obtiens "impossible d'accéder au fichier" et envoie l'e-mail sans pièce jointe... quel est le problème ici??

<html>
<title>Email Sent!</title>
<?php 
        include("menu.php");
        include("sqlconnect.php");
        require_once('../PHPMailer/class.phpmailer.php');

        $path = $_POST['path'];
        $filename = $_POST['filename'];
        $newpath = "Library/WebServer/Documents/Inventory/".$path;

define('GUSER', '[email protected]'); //GMail username
define('GPWD', 'xxxxxxx'); //GMail password


function smtpmailer($to, $from, $from_name, $subject, $body) { 
    global $error;
    $mail = new PHPMailer();  //create a new object
    $mail->IsSMTP(); //enable SMTP
    $mail->SMTPDebug = 0;  //debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true;  //authentication enabled
    $mail->SMTPSecure = 'ssl'; //secure transfer enabled REQUIRED for GMail
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 465; 
    $mail->Username = GUSER;  
    $mail->Password = GPWD;           
    $mail->SetFrom($from, $from_name);
    $mail->Subject = $subject;
    $mail->Body = $body;
    $mail->AddAddress($to);
    $attachtest = $mail->AddAttachment($newpath);   
    if(!$mail->Send()) {
        $error = 'Mail error: '.$mail->ErrorInfo; 
        return false;
    } else {
        $error = 'Message sent!';
        return true;
    }
}

smtpmailer('[email protected]', '[email protected]', 'Name', 'test mail message', 'Hello World!');

?>
</html>
  • Aussi loin que je peux dire, vous n'êtes jamais à l'aide de votre $filename variable. Est qui est-il destiné? Aussi, vous n'avez pas à passer $newpath dans votre fonction en tant que paramètre.
  • Eh bien, lorsque j'utilise AddAttachment, vous pouvez spécifier un nom de fichier pour renommer le fichier une fois qu'il est relié. Je ne suis pas à l'utiliser pour le moment car j'ai besoin de la fonctionnalité première. Et dois-je en passer c'est comme un paramètre?
  • Je ne vois pas d'autre endroit dans votre script où le fichier peut être lu à partir du système de fichiers. Code manquant? Quelle partie du code génère ce message d'erreur?
  • Je ne suis pas sûr, je pense que c'est le AddAttachment ligne, parce que j'ai commenté tout le reste et quand il frappe cette ligne, il se produit une erreur.
  • Essayez echo $newpath; juste avant cette ligne. AddAttachment est probablement d'essayer de joindre votre fichier, mais vous passez une chaîne vide.
  • quand je écho avant la fonction, il imprime le chemin d'accès sur la page. Mais si je fais écho à l'intérieur de la fonction, juste avant AddAttachment, rien n'est fait l'écho/imprimé.
  • Comme je l'ai dit. Vous ne passez pas $newpath dans votre fonction. Ainsi, il est une chaîne vide.
  • function smtpmailer($to, $from, $from_name, $subject, $body, $newpath)?
  • Exactement. J'ai ajouté une réponse avec le code pour vous.
  • Il a travaillé!! J'ai utilisé le chemin d'accès $au lieu de $newpath quand j'ai appelé la fonction si. Fonctionne parfaitement maintenant! Merci!

InformationsquelleAutor denbjornen | 2012-07-01