1

ここに HTML フォームがあり、ファイルをアップロードしてメールで送信するオプションがあります。テキストボックスの値やテキストエリアの値などをメールで送信する以下のphpスクリプトが既にあります。

今私が欲しいのは、フォームにアップロードされたファイルを、フォームの残りを受け取るメールの添付ファイルとしてメールで受け取ることです。

contactform.html

<form id="contact form" name="form1" enctype="multipart/form-data" method="post" action="contactformprocess.php">
  <p>
    <label for="name">Name:</label>
    <input type="text" name="name" id="name" />
  </p>
  <p>
    <label for="email">Email:</label>
    <input type="text" name="email" id="email" />
  </p>
  <p>
    <label for="message">Message:</label>
    <textarea name="message" id="message" cols="45" rows="5"></textarea>
  </p>
  <p>
    <label for="fileupload">Upload your file:</label>
    <input type="file" name="fileupload" id="fileupload" />
  </p>
  <p>
    <input type="submit" name="submit" id="submit" value="Submit" />
  </p>
</form>

そしてphpスクリプト

contactformprocess.php

<?php

/* Subject and Email Variables */

    $emailSubject = 'Contact Form';
    $webMaster = 'me@myemail.com';

/* Gathering Data Variables */

    $name = $_POST['name'];
    $email = $_POST['email'];
    $question = $_POST['message'];

    $body = <<<EOD
<br><hr><br>
Name: $name <br>
Email: $email <br>
Message: $message <br>
EOD;

    $headers = "From: $email\r\n";
    $headers .= "Content-type: text/html\r\n";
    $success = mail($webMaster, $emailSubject, $body, $headers);

/* Results rendered as HTML */

    $theResults = <<<EOD
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Confirmation Page</title>
<style type="text/css">
.header {
    font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
}
</style>
</head>

<body>
<table width="100%" border="0">
  <tr>
    <td bgcolor="#adbe69" class="header"><strong>Confirmation Page</strong></td>
  </tr>
</table>
<table width="100%" border="0" align="left">
  <tr>
    <td><p align="center">Thank You!</p>
    <p align="center">Your Form is Submitted Succesfully,</p>
    <p align="center">You will recieve an email within 24 to 48 hours regarding your message,</p>
    </td>
  </tr>
</table>
</body>
</html>
EOD;
echo "$theResults";
?>
4

1 に答える 1

2

phpスクリプトを使用して添付ファイル付きのメールを送信することをお勧めするわけではありません(むしろ、ダウンロードリンクを提供し、メールターゲットの取得のためにサーバーにドキュメントを保存します)

ここを見てください:http://webcheatsheet.com/php/send_email_text_html_attachment.php#attachment

添付ファイルが取得される部分は次のようになります。

$attachment = chunk_split(base64_encode(file_get_contents('attachment.zip'))); 

attachment.zip の代わりに、サーバーの (php-)upload ディレクトリから一時ファイルを使用する必要があります。

于 2012-09-17T05:48:15.377 に答える