2013-08-10 3 views
1

У меня есть форма:Как включить файл вложения с помощью моей формы для отправки по электронной почте?

<form id='contactus' action='send.php' method='post' enctype="multipart/form-data" accept-charset='UTF-8'> 
<fieldset> 
<legend>My Form</legend> 
<table><tbody> 
<tr valign="top"> 
<td nowrap="nowrap" style="text-align: right;"><label for='name' >Name: </label></td> 
<td><input type='text' name='name' id='name' value=''/></td></tr> 
<tr valign="top"> 
<td nowrap="nowrap" style="text-align: right;"><label for='email' >Email: </label></td> 
<td><input type='text' name='email' id='email' value=''/></td></tr> 
<tr valign="top"> 
<td nowrap="nowrap" style="text-align: right;"><label for='link' >Link: </label></td> 
<td><input type='text' name='link' id='link' value=''/></td></tr> 
<tr valign="top"> 
<td nowrap="nowrap" style="text-align: right;"><label for='subject' >Subject: </label> 
</td><td><input type='text' name='subject' id='subject' value=''/></td></tr> 
<tr valign="top"> 
<td nowrap="nowrap" style="text-align: right;"><label for='description' >Description: 
</label></td> 
<td><textarea rows="10" cols="50" name='description' id='description'></textarea> 
</td></tr> 
<tr valign="top"> 
<td nowrap="nowrap" style="text-align: right;"><label for='photo' >Photo: </label></td> 
<td><input type="file" name='photo' id='photo' /></td></tr> 
</tbody></table> 
<td nowrap="nowrap" style="text-align: center;"><input type='submit' value='Send' /></td> 
</fieldset> 
</form> 

и мой 'send.php' является

<?php 
if(isset($_POST['email'])) { 

$email_to = "[email protected]"; 
$subject = $_POST['subject']; 
$name = $_POST['name']; 
$email = $_POST['email']; 
$link = $_POST['link']; 
$description = $_POST['description']; 
$photo = $_POST['photo']; 

$email_message .= "Name: ".($name)."\n"; 
$email_message .= "Email: ".($email)."\n"; 
$email_message .= "Link: ".($link)."\n"; 
$email_message .= "Subject: ".($subject)."\n"; 
$email_message .= "Description: ".($description)."\n"; 
$email_message .= "Photo: ".($photo)."\n"; 

// create email headers 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $subject, $email_message); 
} 
header("Location: thank-you.html"); 
?> 

Мой вопрос:

1) Все работает хорошо .. кроме 'фото', я знайте, что это будет привязанность. Но я не знаю, как это сделать?

2) И как я могу видеть это полужирным, когда получаю электронное письмо?

$ email_message. = "Имя:". ($ Name). "\ N";

эми: Имя: Джон

меня пытаются сделать как это, но ничего не вышло.

$email_message .= "<b>Name: </b>".($name)."\n"; 
$email_message .= "<b>Email: </b>".($email)."\n"; 
$email_message .= "<b>Link: </b>".($link)."\n"; 
$email_message .= "<b>Subject: </b>".($subject)."\n"; 
$email_message .= "<b>Description: </b>".($description)."\n"; 

Заранее спасибо

+0

для присоединения следовать этому http://stackoverflow.com/questions/17923667/i-want-to-send-email-with-attachments-using-phpmailer –

ответ

0

Используйте $ _FILES супер глобальный массив вместо $ _POST для обработки файлов.

$photo = $_FILES['photo']['name']; 
    ... 

$email_message .= "Photo: ".$photo."\n"; 
+0

Не работает, он просто отправить " имя фотографии ", но не фотография. – Suzylee

+0

@Suzylee Я думал, что вам нужно имя файла. Если вы хотите, чтобы файл использовал '$ _FILES [" file "] [" tmp_name "]'. Но не нужно ли прямо отправлять вложение с функцией mail(). Посмотрите http://stackoverflow.com/questions/6275070/php-mail-attachment-problems – Bere

+0

Все еще не сработало, но спасибо – Suzylee

0

Вы должны указать файл с $ _FILES.

$name_of_uploaded_file = 
     basename($_FILES['photo']['name']); // get name of file uploaded 

    //get the file extension of the file 
    $type_of_uploaded_file = 
     substr($name_of_uploaded_file, 
     strrpos($name_of_uploaded_file, '.') + 1); 

    $size_of_uploaded_file = 
     $_FILES["photo"]["size"]/1024;//size in KBs 

    //copy the temp. uploaded file to uploads folder 

    $path_of_uploaded_file = $upload_folder . $name_of_uploaded_file; 
    $tmp_path = $_FILES["photo"]["tmp_name"]; 

    if(is_uploaded_file($tmp_path)) 
    { 
     if(!copy($tmp_path,$path_of_uploaded_file)) 
     { 
     $errors .= '\n error while copying the uploaded file'; 
     } 
    } 

Во-первых, нам необходимо включить файлы библиотеки груши для этих классов.

include_once('Mail.php'); 
include_once('Mail_Mime/mime.php'); 


$message = new Mail_mime(); 

$message->setTXTBody($text); 

$message->addAttachment($path_of_uploaded_file); 

$body = $message->get(); 

$extraheaders = array("From"=>$from, "Subject"=>$subject,"Reply-To"=>$visitor_email); 

$headers = $message->headers($extraheaders); 

$mail = Mail::factory("mail"); 

$mail->send($to, $headers, $body); 
Смежные вопросы