1<?php
2/**
3 * PHPMailer simple file upload and send example
4 */
5$msg = '';
6if (array_key_exists('userfile', $_FILES)) {
7    // First handle the upload
8    // Don't trust provided filename - same goes for MIME types
9    // See http://php.net/manual/en/features.file-upload.php#114004 for more thorough upload validation
10    $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name']));
11    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
12        // Upload handled successfully
13        // Now create a message
14        // This should be somewhere in your include_path
15        require '../PHPMailerAutoload.php';
16        $mail = new PHPMailer;
17        $mail->setFrom('from@example.com', 'First Last');
18        $mail->addAddress('whoto@example.com', 'John Doe');
19        $mail->Subject = 'PHPMailer file sender';
20        $mail->Body = 'My message body';
21        // Attach the uploaded file
22        $mail->addAttachment($uploadfile, 'My uploaded file');
23        if (!$mail->send()) {
24            $msg .= "Mailer Error: " . $mail->ErrorInfo;
25        } else {
26            $msg .= "Message sent!";
27        }
28    } else {
29        $msg .= 'Failed to move file to ' . $uploadfile;
30    }
31}
32?>
33<!DOCTYPE html>
34<html>
35<head>
36    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
37    <title>PHPMailer Upload</title>
38</head>
39<body>
40<?php if (empty($msg)) { ?>
41    <form method="post" enctype="multipart/form-data">
42        <input type="hidden" name="MAX_FILE_SIZE" value="100000"> Send this file: <input name="userfile" type="file">
43        <input type="submit" value="Send File">
44    </form>
45<?php } else {
46    echo $msg;
47} ?>
48</body>
49</html>