2013-04-15 2 views
0

У меня есть код ниже в функции. Однако он никогда не добавляет вложение в электронное письмо. Письмо приходит через штраф, но без привязанности.код phpmailer не работает, когда в функции

Однако, если я удалю код из функции и добавлю к нему отдельный файл (без функции) и в том же каталоге он отлично работает.

Почему это не добавление вложения в функции?

function resendOrder() 
{ 
    //global $siteEmailFrom, $siteEmailName, $dir; 
    require_once('OrderMailer/class.phpmailer.php');// need this to send email 

    $mail = new PHPMailer(); 
    // Now you only need to add the necessary stuff 

    // HTML body 

    $body = "Testing"; 

    // And the absolute required configurations for sending HTML with attachement 
    $mail->From  = "[email protected]******.co.uk"; 
    $mail->AddAddress("[email protected]******.co.uk", "My-webpage Website"); 
    $mail->Subject = "test for phpmailer-3"; 
    $mail->MsgHTML($body); 

    $mail->AddAttachment("ploxy.jpg"); 

    if(!$mail->Send()) { 
     echo "There was an error sending the message"; 
     exit; 
    } 
    else{ 
     echo "Message was sent successfully"; 
    } 
} 

ответ

0

Вы не можете ссылаться на имя вложения «ploxy.jpg», то есть: Вы не можете ссылаться на имя файла.

Вы должны обратиться к временному файлу, вы можете сделать что-то вроде

$_FILES['ploxy']['tmp_name']; // temp_name can be anything 

руды более точно:

$filePath = "../images/"; // Path to image, can be the empty string. 
$ploxy = $_FILES['ploxy']['tmp_name']; 
$mail->AddAttachment($filePath, $ploxy); 

В основном: Вы должны загрузить файл сценарий, прежде чем отправить Это; http://php.net/manual/en/features.file-upload.php

+0

Хорошо спасибо. Должно быть не так: $ filePath = "../images/"; // Путь к изображению может быть пустой строкой. $ ploxy = $ _FILES ['ploxy.jpg'] ['tmp_name']; $ mail-> AddAttachment ($ filePath, $ ploxy); – user2183216

+0

Нет, расширение файла не должно быть. – Jonast92

+0

Не забудьте проголосовать, если это полезно и принять, если оно решит вашу проблему. Если это не так, я могу сказать вам, что это было разрешено много раз, если вы просто правильно это сделали. – Jonast92

Смежные вопросы