簡體   English   中英

通過電子郵件發送附件

[英]Sending attachment(s) in email

我從沒接觸過PHP,但是卻要負責修復Intern的代碼。

我正在嘗試將要上傳的文件附加到我發送的電子郵件中。 電子郵件發送,但沒有文件。 我正在使用PHPMailerAutoUpload.php(在GitHub上找到)。

這是我正在使用的代碼。

附件通過move_uploaded_file保存

move_uploaded_file( $resume['tmp_name'] , $up_dir .basename( $random_var . '_wse_' . $resume['name'] ) )

注意:我已經注釋掉了move_uploaded_file函數,以確保我沒有擺脫附件。

        require_once('phpmailer/PHPMailerAutoload.php');
        $mail = new PHPMailer(true);
        $mail->IsSMTP();
        $mail->SMTPDebug = 2;
        $mail->SMTPAuth = false;
        $mail->Host = 'oursmtp';
        $mail->Port = 25;

        $mail->setFrom( $_POST['E-mail'] , $_POST['first_name'] . " " . $_POST['last_name'] );
        $mail->addAddress( 'test@test.com' );
        $mail->Subject = "Test" . @date('M/D/Y');
        $mail->msgHTML($msgDoc);

        if (isset($_FILES['uploaded_file']) &&
        $_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
        $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],
                             $_FILES['uploaded_file']['name']);
        }


        if (!$mail->send()) {
            $mailError = $mail->ErrorInfo;
            $outcomeArr = array(
                                'outcome'=>'failure',
                                'message'=>'Error' . $mailError
                            );              
            echo json_encode( $outcomeArr );
            exit();             
        } else {
            // success
            $outcomeArr = array(
                                'outcome'=>'success',
                                'message'=>'Thank you'
                            );      
            echo json_encode( $outcomeArr );
        }

據我了解, $_FILES _ $_FILES是PHP中上傳文件的臨時存儲。 使用此代碼,電子郵件將發送,但沒有附件(只有指向上載文件位置的鏈接)。

我嘗試遵循此方法 ,但是它對我不起作用。

您的實習生顯然是搖滾明星,不需要檢查或指出錯誤情況,即使沒有附件或在上傳過程中出現錯誤,郵件也會發送出去。 將這些位更改為代碼,以告訴您為什么未附加文件:

if (isset($_FILES['uploaded_file']) && $_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
    if( ! $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'], $_FILES['uploaded_file']['name']) ) {
        echo 'Error adding attachment: ' . $mail->ErrorInfo;
    }
} else if( !isset($_FILES['uploaded_file']) ) {
    echo 'No uploaded file found';
} else {
    echo 'Uploaded file error: ' . $_FILES['uploaded_file']['error'];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM