我一直在努力使用php将上传的文件发送到电子邮件。我的问题是我将电子邮件上传的文件发送到该电子邮件。这是我的代码,它不起作用。
<?php
if (isset($_POST['submit'])) {
$headers = "From: abc@example.com mailer \r\n";
echo $message .= $_POST['message'];
/* GET File Variables */
$tmpName = $_FILES['attachment']['tmp_name'];
$fileType = $_FILES['attachment']['type'];
$fileName = $_FILES['attachment']['name'];
if (file_exists($tmpName)) {
/* Reading file ('rb' = read binary) */
$file = fopen($tmpName,'rb');
$data = fread($file,filesize($tmpName));
fclose($file);
/* a boundary string */
$randomVal = md5(time());
$mimeBoundary = "==Multipart_Boundary_x{$randomVal}x";
/* Header for File Attachment */
$headers .= "\nMIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;\n" ;
$headers .= " boundary=\"{$mimeBoundary}\"";
/* Multipart Boundary above message */
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mimeBoundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
/* Encoding file data */
$data = chunk_split(base64_encode($data));
/* Adding attchment-file to message*/
$message .= "--{$mimeBoundary}\n" .
"Content-Type: {$fileType};\n" .
" name=\"{$fileName}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mimeBoundary}--\n";
}
$to_user = "bnarendra6036@gmail.com";
$flgchk = mail("$to_user", "$subject", "$message", "$headers");
if ($flgchk) {
echo "Done, <br>";
}
else
{
echo "Failed to send email, <br>";
echo "Redirecting you to your <a href=\"?page=inbox.php\">Inbox</a>";
}
}
?>
<form name="form1" method="post" action="" enctype="multipart/form-data">
<table>
<tr>
<td width='20'><b>Select File:</b> </td>
<td width='20'><input type="file" name="attachment"></td>
</tr>
<p><td>
<input type="submit" name="Submit" value="Send" class="Submit" /></td></tr></table>
</p>
</form>
您也可以调整此代码或向我发送任何其他工作代码。
答案 0 :(得分:1)
我使用PHPMailer创建了demo。首先加载phpmailer.class.php
文件。
您可以从这里下载:http://github.com/PHPMailer/PHPMailer
require_once('/class.phpmailer.php'); // Your full path of phpmailer.php file
$email = new PHPMailer();
$email->From = 'From email address'; //From email address
$email->FromName = 'Your name'; //your name
$email->Subject = 'Message'; //Message
$email->Body = 'Body Text Message'; //Body message
$email->AddAddress( 'To email address' ); //To email address
$attach_file = 'Your file path'; //Attached file path
$email->AddAttachment( $attach_file, 'file_name.doc' );
return $email->Send();