-2

メールに添付ファイルを含む連絡先フォームのコンテンツを送信するためのコードがありますが、私のクエリでは内容がメール本文に表示されないため、ヘッダーに表示することを選択したので、それを理解するのを手伝ってください......

 <?php 
 // Settings
 $name = "A";
 $email = "a@q.com";
 $email2 = "v@c.in";
 $to = "$name <$email>,<$email2>";
 $from = $_POST["EEmail"]; 
 $subject2 = "message from contact page";
 $name1 = $_POST["SName"];
 $phone = $_POST["Pphone"];
 $subject1 = $_POST["txtSubject"];
 $description = nl2br($_POST["txtDescription"]);
 $fileatt = ".docx";
 $fileatttype = "application/docx";
 $fileattname = $_FILES["fileAttach"]["name"];
 $headers = "From: $from";
 $subject = "name:$name1,"."Phone:$phone,"."Email
            Id:$from,"."Subject:$subject1,"."Comment:$description.";

 $semi_rand = md5(time());
 $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
 $headers .= "\nMIME-Version: 1.0\n" .
 "Content-Type: multipart/mixed;\n" .
 " boundary=\"{$mime_boundary}\"";

 $body = "This is a multi-part message in MIME format.\n\n" .
 "-{$mime_boundary}\n" .
 "Content-Type: text/plain; charset=\"iso-8859-1\n"  .
 "Content-Transfer-Encoding: 7bit\n\n" .

 $data = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]  ["tmp_name"])));
 $body .= "--{$mime_boundary}\n" .
 "Content-Type: {$fileatttype};\n" .
 " name=\"{$fileattname}\"\n" .
 "Content-Disposition: attachment;\n" .
 " filename=\"{$fileattname}\"\n" .
 "Content-Transfer-Encoding: base64\n\n" .
 "\n\n" ."-{$mime_boundary}-\n";

  // Send the email
 mail($to, $subject,  $headers , $body);
 ?>
4

2 に答える 2

0

phpmailer を使用するhttps://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php

使い方:

<?php
include("class.phpmailer.php");

$mail = new PHPMailer();

$mail->From = "abc@xyz.com";
$mail->FromName = "My Name";
$mail->AddAddress("recipient@gmail.com");

$mail->AddAttachment("uploads/".$profile_photo_name);    //Path to the file to be attached

$mail->IsHTML(true);                //Set the email type to rich HTML

$mail->Subject = "Your subject";
$mail->Body = "Your email body";    //Body for rich HTML mail

if($mail->Send())               //Send email
{
    echo "Mail sent";
}    
else
    echo "Failure";
?>
于 2013-11-12T12:39:21.247 に答える
0

一つには、あなた$headers$body配置が混同されています。

あなたが持っている:

mail($to, $subject,  $headers , $body);

どこにあるべきか:

mail($to, $subject,  $body, $headers);

本文はヘッダーになる必要があります。

PHPマニュアルhttp://php.net/manual/en/function.mail.phpに従って

于 2013-11-12T12:52:06.763 に答える