2015-09-16 40 views
-1

我做了這種形式的郵件,它沒有圖像附件效果很好。但我也需要圖片上傳功能。是一個簡單的方法來做到這一點?形式梅勒與圖像附件

我已經嘗試了一些東西,但我沒有得到它的工作。

提前致謝!

<?php 
 

 
$EmailFrom = "[email protected]"; 
 
$EmailTo = "[email protected]"; 
 
$Subject = "New Mail"; 
 
$Name = Trim(stripslashes($_POST['Name'])); 
 
$City = Trim(stripslashes($_POST['City'])); 
 
$Email = Trim(stripslashes($_POST['Email'])); 
 
$Tel = Trim(stripslashes($_POST['Tel'])); 
 
$Position = Trim(stripslashes($_POST['Position'])); 
 

 

 
// validation 
 
$validationOK=true; 
 
if (!$validationOK) { 
 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; 
 
    exit; 
 
} 
 

 
// prepare email body text 
 
$Body = ""; 
 
$Body .= "Name: "; 
 
$Body .= $Name; 
 
$Body .= "\n"; 
 
$Body .= "Wohnort: "; 
 
$Body .= $City; 
 
$Body .= "\n"; 
 
$Body .= "Email: "; 
 
$Body .= $Email; 
 
$Body .= "\n"; 
 
$Body .= "Tel: "; 
 
$Body .= $Tel; 
 
$Body .= "\n"; 
 
$Body .= "Position: "; 
 
$Body .= $Position; 
 
$Body .= "\n"; 
 

 
// send email 
 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); 
 

 
// redirect to success page 
 
if ($success){ 
 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">"; 
 
} 
 
else{ 
 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; 
 
} 
 
?> 
 

 
<!DOCTYPE html> 
 
<html lang="de"> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <title>G</title> 
 
    </head> 
 
    <body> 
 
    <div class="container"> 
 
     <div class="main"> 
 
     <div class="position"> 
 
      
 
      <form method="post" action="contactengine.php" enctype="multipart/form-data"> > 
 
      
 
      <label for="Name">Name:</label> 
 
      <input type="text" name="Name" id="Name" required/> 
 
     
 
      <label for="City">Wohnort:</label> 
 
      <input type="text" name="City" id="Tel" required/> 
 
    
 
      <label for="Email">Email:</label> 
 
      <input type="text" name="Email" id="Email" required/> 
 

 
      <label for="Tel">Tel:</label> 
 
      <input type="text" name="Tel" id="Tel" /> 
 

 
      <input type="radio" name="Position" value="Pos1" required> Pos1 
 
      <input type="radio" name="Position" value="Pos2" required> Pos2 
 
      <label for="File">Filename:</label> 
 
      <input type="file" name="File" id="File"><br> 
 

 
      <input type="submit" name="submit" value="Submit" class="submit-button" /> 
 

 
      </form> 
 

 
     
 
     </div> 
 
     </div> 
 

 
    </div>

+0

[如何在PHP郵件功能中發送圖像]可能的副本(http://stackoverflow.com/questions/26423942/how-to-send-image-in-php-mail-function) –

+0

thx,didn' t在我的搜索中看到了這一點。 – bitstream

回答

0

請試試這個代碼用附件發送郵件。我希望這段代碼能幫助你。

$mail_to = ""; 
$from_mail = ""; 
$from_name = ""; 
$reply_to = ""; 
$subject = ""; 
$message = ""; 

$file_name = "<attachment file name>"; 
$path = "<relative path the attachment>"; 

$file = $path.$file_name; 
$file_size = filesize($file); 
$handle = fopen($file, "r"); 
$content = fread($handle, $file_size); 
fclose($handle); 
$content = chunk_split(base64_encode($content)); 

$boundary = md5(uniqid(time())); 

$header = "From: ".$from_name." \r\n"; 
$header .= "Reply-To: ".$reply_to."\r\n"; 
$header .= "MIME-Version: 1.0\r\n"; 

$header .= "Content-Type: multipart/mixed;\r\n"; 
$header .= " boundary=\"".$boundary."\""; 

$message .= "This is a multi-part message in MIME format.\r\n\r\n"; 
$message .= "--".$boundary."\r\n"; 

$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n"; 
$message .= "Content-Transfer-Encoding: 7bit\r\n"; 
$message .= "\r\n"; 
$message .= "$message_body\r\n"; 
$message .= "--".$boundary."\r\n"; 

$message .= "Content-Type: application/xml;\r\n"; 
$message .= " name=\"".$file_name."\"\r\n"; 
$message .= "Content-Transfer-Encoding: base64\r\n"; 
$message .= "Content-Disposition: attachment;\r\n"; 
$message .= " filename=\"".$file_name."\"\r\n"; 
$message .= "\r\n".$content."\r\n"; 
$message .= "--".$boundary."--\r\n"; 

if (mail($mail_to, $subject, $message, $header)) { 
    echo "Sent"; 
} else { 
    echo "Error"; 
} 

謝謝!

+0

謝謝,我稍後會在家裏嘗試。 – bitstream