0

関数に以下のコードがあります..ただし、メールに添付ファイルが追加されることはありません。メールは問題なく届きますが、添付ファイルはありません。

ただし、関数からコードを削除し、別のファイル (関数部分なし) を追加すると、同じディレクトリで正常に動作します。

関数内で添付ファイルを追加しないのはなぜですか?

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      = "mark@******.co.uk"; 
    $mail->AddAddress("mark@******.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";
    }
}
4

1 に答える 1

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

于 2013-04-15T11:47:33.730 に答える