Использование переменной для пути вложения почты: $ mailer-> AddAttachment ($ file_variable); - PullRequest
1 голос
/ 08 апреля 2011

Я пытаюсь создать автоматическое письмо, которое будет отправлять вложения на основе переменной, содержащей относительный путь к файлу, с помощью PHPmailer.Путь к файлу хранится в таблице в MYSQL.Я хочу получить путь к файлу для каждого письма, отправленного с использованием цикла while.Кто-нибудь когда-либо делал это?Письма отправляются нормально, но без вложений, и выводится следующая ошибка:

Не удалось получить доступ к файлу: $ filepath

Строки кода, о которых идет речь, это строки 11, 12 и 27. Спасибоза вашу помощь.

1

 require("PHPMailer_v5.1 2/class.phpmailer.php");
    2    while ($row = mysqli_fetch_array($result)){
    3    $to = $row['email'];
    4    $first_name = $row['first_name'];
    5    $last_name = $row['last_name'];
    6    $msg = $row['msg'];
    7    $id = $row['id'];
    8
    9    //the code in question -lines 11 and 12:
    10
    11   $filepath= $row['filepath'];
    12    $filename= $row['filename'];
    13
    14  $mailer = new PHPMailer();
    15  $mailer->IsSMTP();
    16  $mailer->Host = 'ssl://smtp.gmail.com:465';
    17  $mailer->SMTPAuth = TRUE;
    18  $mailer->Username = 'xx';  // Sender's gmail address
    19  $mailer->Password = 'xx';  // Sender's gmail password
    20  $mailer->From = 'xx';  // Sender's email address
    21  $mailer->FromName = 'xx'; // This is the from name in the email
    22  $mailer->Body = "$msg";
    23  $mailer->Subject = "$id";
    24  $mailer->AddAddress('xx');  // Recipient
    25
    26   //Applying the variables fetched from the database - can this be done?
    27  $mailer->AddAttachment('$filepath', '$filename');
    28  
    29    if(!$mailer->Send())
    30  //more code...

Ответы [ 2 ]

3 голосов
/ 08 апреля 2011

27 $mailer->AddAttachment('$filepath', '$filename');
должно быть
27 $mailer->AddAttachment($filepath, $filename);
в противном случае вы просто передаете «$ filepath» и «$ filename» в AddAtachment, а не фактические данные за переменными.

0 голосов
/ 08 апреля 2011

Попробуйте:

$mailer->AddAttachment($filepath, $filename);
...