2017-02-01 5 views
0

基本的には、ヒット送信時にフォームにアップロードされた画像を送信して、メールを送信できるようにする必要があります。アップロード画像を電子メールで送信する

テキストでメールを送信しても、写真が通過しないという問題が発生しています。私は別の方法で何をしますか?

$email_to = "[email protected]"; 
 
$email_subject = "Subject"; 
 
$email_from = "People"; 
 
\t \t 
 
$b_frontPhoto = $_FILES['before1']; // required 
 
$b_backPhoto = $_FILES['before2']; // required 
 
$b_sidePhoto = $_FILES['before3']; // required 
 
$s_Weight = $_POST['startWeight']; // not required 
 
$s_pantSize = $_POST['startPants']; // required 
 
$s_dressSize = $_POST['startDress']; // required 
 
// $why_start = $_POST['bwell_code']; // required 
 

 
$email_message = "Form details below.<br><br>"; 
 

 
$email_message .= "Name: ".$b_frontPhoto."<br>"; 
 
$email_message .= "Address: ".$b_backPhoto."<br>"; 
 
$email_message .= "City: ".$b_sidePhoto."<br>"; 
 
$email_message .= "State: ".$s_Weight."<br>"; 
 
$email_message .= "Zip: ".$s_pantSize."<br>"; 
 
$email_message .= "Email: ".$s_dressSize."<br>"; 
 
// $email_message .= "Redemption_Code: ".$b_redemption."<br>"; 
 
\t 
 
sendEmail($email_to,$email_subject,$email_message,'[email protected]');

答えて

2

私はそれが今から生活がより簡単になりますよう、あなたが本当にphpmailerのに探していくつかの時間を投資するべきだと思います。これは、添付ファイルを簡単に追加する機能を追加するなど、PHP mail()が持つ数多くの問題を修正しています。使い方は非常に簡単です。次の例では

PHPMailer

、あなたがアップロードしたファイルとすることができる、addAttachmentを呼び出して、あなたのイメージのURLを供給することによって、あなたの画像を添付したい:

<?php 
require 'PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

$mail->setFrom('[email protected]', 'Mailer'); 
$mail->addAddress('[email protected]', 'Joe User');  // Add a recipient 
$mail->addAddress('[email protected]');    // Name is optional 
$mail->addReplyTo('[email protected]', 'Information'); 
$mail->addCC('[email protected]'); 
$mail->addBCC('[email protected]'); 

$mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
$mail->isHTML(true);         // Set email format to HTML 

$mail->Subject = 'Here is the subject'; 
$mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 

はEDIT:

PHPMailerを使用しているコメントに基づいて、sendEmail関数を変更してください。

function sendEmail($email,$subject,$content,$sent_from_email_address,$b_frontPhot‌​o,$b_backPhoto,$b_si‌​dePhoto) { 
///////////////////////////////// Passed the photos to the function ^^^^^^^^^^^^^^^^^^^^^ 

     $b_frontPhot‌​o = $b_frontPhot‌​o['tmp_name']; 
     $b_backPhot‌​o = $b_backPhot‌​o['tmp_name']; 
     $b_sidePhot‌​o = $b_sidePhot‌​o['tmp_name']; 
//^^^^^^ Try adding these in ^^^^^^^^^^^^^^^^^^ 
     $mail = new PHPMailer(); 
     $mail->IsSMTP(); 
     $mail->Host = "stuff"; 
     $mail->SMTPAuth = true;  
     $mail->Username = "stuuff"; 
     $mail->Password = "stuff"; 
     $mail->Port = "stuff";  
     $mail->setFrom($sent_from_email_address, "stuff"); 
     $mail->Encoding = "stuff"; 
     $mail->Subject = $subject; 
     $mail->msgHTML($content); 
     $mail->AddAddress($email); 

     // Attach the files to the email 
     $mail->addAttachment($b_frontPhoto); 
     $mail->addAttachment($b_backPhoto); 
     $mail->addAttachment($b_sidePhoto); 


     if (!$mail->Send()) 
      return 0; 
     else 
      return 1; 
}///// close function ///// 
+0

さて、私は新しくスーパーで、自分が何をしているのか分かりません。しかし、私はPHPMailerを使用しているとかなり確信しています。 – davidthom42

+0

私は何をする必要があるのか​​よく分かりません。 – davidthom42

+0

私の質問は、ファイル/var/tmp/file.tar.gzまたは '/tmp/image.jpg'、 'new.jpg'を作る必要があると思います。ちょうどコピーすればうまくいくのですか? – davidthom42

関連する問題