이미지를 PHP HTML 메일에 첨부 파일로 추가하는 방법은 무엇입니까?

Shamshid

아래 코드에 문제가 있습니까?

내 양식에서 이미지를 HTML 메일에 첨부 파일로 추가하려고합니다. 사용자는 이미지를 추가 할 수있는 옵션이 있으며 제출 버튼을 클릭하면 업로드 및 전송됩니다.

그러나 제출을 클릭하면 오류가 발생하고 몇 초 내에 자동으로 성공 페이지로 리디렉션되지만 양식에서 이메일이 전송되지 않습니다. 내 코드에 실수가 있으면 누군가 코드를 정리하고 내가 한 실수를 지적 할 수 있습니까?

감사

require_once "Mail.php";
        $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}\""; 
        $message = "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" . $message . "\n\n"; 
        $message .= "--{$mime_boundary}\n";
        // preparing attachments            
            $file = fopen($filename,"rb");
            $data = fread($file,filesize($filename));
            fclose($file);
            $data = chunk_split(base64_encode($data));
            $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"".$fname."\"\n" . 
            "Content-Disposition: attachment;\n" . " filename=\"$fname\"\n" . 
            "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
            $message .= "--{$mime_boundary}--\n";
$Subject = Trim(stripslashes($_POST['Subject']));
$Name = Trim(stripslashes($_POST['Name'])); 
$filename = "/uploads/" . $_FILES["file"]["name"];
$Email = Trim(stripslashes($_POST['Email'])); 
$EmailMe = '[email protected]'; 
$ip = $_SERVER['REMOTE_ADDR'];
$filename="/uploads/file.jpeg";
$fname="file.jpeg";
$Messages = Trim(stripslashes($_POST['Message']));
$smtp = Mail::factory('smtp', array(
        'host' => 'host',
        'port' => '##',
        'auth' => true,
        'username' => '[email protected]',
        'password' => '*********',
    ));
$Body = "<html> html email</html>";
$Body1 = "<html> html email</html>";
$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}\""; 
$headers .= "From: Roberta <[email protected]> \r\n";
$headers .= "Reply-To: < [email protected] > \r\n";
$headers .= "Return-Path: [email protected]";
$headers .= "X-Mailer: PHP \r\n";
        $message = "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" . $message . "\n\n"; 
        $message .= "--{$mime_boundary}\n";
        // preparing attachments            
            $file = fopen($filename,"rb");
            $data = fread($file,filesize($filename));
            fclose($file);
            $data = chunk_split(base64_encode($data));
            $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"".$fname."\"\n" . 
            "Content-Disposition: attachment;\n" . " filename=\"$fname\"\n" . 
            "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
            $message .= "--{$mime_boundary}--\n";

$success =  mail($Email, $Subject, $message, $headers, "-f " . $from); 
            mail($EmailMe, $Subject,  $message, $ip, $headers, "-f " . $from); 

            if (success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=/thanks\">";
}
else{
  echo "<meta http-equiv=\"refresh\" content=\"0;URL=/error\">";
}
호맘 알 하이 담

PHPMailer 를 사용하는 것이 더 낫다고 생각합니다.

php.net에서이 예제를 보지 않고

본문, 이메일 헤더 (첨부 파일 포함, 첨부 파일 없음)에 차이가 있습니다. 아래 전체 예제를 참조하십시오. 저에게 적합합니다 (LINUX, WIN) 및 (Yahoo Mail, Hotmail, Gmail, ...)

<?php
$to      = $_POST['to']; 
$email   = $_POST['email']; 
$name    = $_POST['name'];
$subject = $_POST['subject']; 
$comment = $_POST['message'];

$To          = strip_tags($to);
$TextMessage =strip_tags(nl2br($comment),"<br>");
$HTMLMessage =nl2br($comment);
$FromName    =strip_tags($name);
$FromEmail   =strip_tags($email);
$Subject     =strip_tags($subject);

$boundary1   =rand(0,9)."-"
.rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
$boundary2   =rand(0,9)."-".rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);


for($i=0; $i < count($_FILES['youfile']['name']); $i++){
if(is_uploaded_file($_FILES['fileatt']['tmp_name'][$i]) && 
   !empty($_FILES['fileatt']['size'][$i]) && 
   !empty($_FILES['fileatt']['name'][$i])){

$attach      ='yes';
$end         ='';

   $handle      =fopen($_FILES['fileatt']['tmp_name'][$i], 'rb'); 
   $f_contents  =fread($handle, $_FILES['fileatt']['size'][$i]); 
   $attachment[]=chunk_split(base64_encode($f_contents));
   fclose($handle); 

$ftype[]       =$_FILES['fileatt']['type'][$i];
$fname[]       =$_FILES['fileatt']['name'][$i];
}
}

/***************************************************************
Creating Email: Headers, BODY
1- HTML Email WIthout Attachment!! <<-------- H T M L ---------
***************************************************************/
#---->Headers Part
$Headers     =<<<AKAM
From: $FromName <$FromEmail>
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="$boundary1"
AKAM;

#---->BODY Part
$Body        =<<<AKAM
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="$boundary1"

This is a multi-part message in MIME format.

--$boundary1
Content-Type: text/plain;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$TextMessage
--$boundary1
Content-Type: text/html;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$HTMLMessage

--$boundary1--
AKAM;

/***************************************************************
2- HTML Email WIth Multiple Attachment <<----- Attachment ------
***************************************************************/

if($attach=='yes') {

$attachments='';
$Headers     =<<<AKAM
From: $FromName <$FromEmail>
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/mixed;
    boundary="$boundary1"
AKAM;

for($j=0;$j<count($ftype); $j++){
$attachments.=<<<ATTA
--$boundary1
Content-Type: $ftype[$j];
    name="$fname[$i]"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
    filename="$fname[$j]"

$attachment[$j]

ATTA;
}

$Body        =<<<AKAM
This is a multi-part message in MIME format.

--$boundary1
Content-Type: multipart/alternative;
    boundary="$boundary2"

--$boundary2
Content-Type: text/plain;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$TextMessage
--$boundary2
Content-Type: text/html;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$HTMLMessage

--$boundary2--

$attachments
--$boundary1--
AKAM;
}

/***************************************************************
Sending Email
***************************************************************/
$ok=mail($To, $Subject, $Body, $Headers);
echo $ok?"<h1> Mail Sent</h1>":"<h1> Mail not SEND</h1>";
?>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UNIX에서 HTML 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

이메일 의도 Android에서 첨부 파일 추가를 활성화하는 방법은 무엇입니까?

분류에서Dev

mpack을 사용하여 명령 줄에서 HTML 파일을 이메일에 첨부 파일로 보내는 방법은 무엇입니까?

분류에서Dev

Qt로 이미지 첨부 파일이있는 이메일을 보내는 방법은 무엇입니까?

분류에서Dev

스트림에서 PDF를로드하고 파일 첨부를 추가하는 방법은 무엇입니까?

분류에서Dev

PHP에서 메일 첨부 파일로 암호화 된 Zip 아카이브를 보내는 방법은 무엇입니까?

분류에서Dev

Thunderbird에서 첨부 파일 이름으로 이메일을 검색하는 방법은 무엇입니까?

분류에서Dev

노드 js에서 이메일로 .ics 파일을 첨부하는 방법은 무엇입니까?

분류에서Dev

디스크에 다운로드하지 않고 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

SendGrid를 사용하여 파일을 이메일에 첨부 파일로 첨부하는 방법은 무엇입니까?

분류에서Dev

이메일 헤더에서 첨부 파일을 추출하는 방법은 무엇입니까?

분류에서Dev

Flask에서 이메일 메시지에 파일을 첨부하는 방법은 무엇입니까?

분류에서Dev

파일 확장자로 이메일 첨부 파일 MIME 유형을 얻는 방법은 무엇입니까?

분류에서Dev

Dreamweaver가 HTML 파일을 열 때 첨부 된 스크립트 및 CSS 파일을로드하지 못하도록하는 방법은 무엇입니까?

분류에서Dev

첨부 파일이있는 Outlook 이메일에서 Excel로 정보를 실시간으로 자동 추출하는 방법은 무엇입니까?

분류에서Dev

C #에서 이메일에 RAR 파일을 첨부하는 방법은 무엇입니까?

분류에서Dev

SendGrid (자바)를 통해 Google App Engine에서 보낸 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

이메일의 자산에서 PDF 파일을 첨부하는 방법은 무엇입니까?

분류에서Dev

첨부 된 이미지를 mkv 썸네일로 표시하는 방법은 무엇입니까?

분류에서Dev

.NET 이메일 용 HTML 템플릿에 이미지를 첨부하는 방법

분류에서Dev

Mozilla Thunderbird에서 이메일에 이벤트를 첨부하는 방법은 무엇입니까?

분류에서Dev

http로 dart에서 mailgun을 사용하여 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

명령 줄에서 접미사로 첨부 파일이있는 이메일을 보내는 방법은 무엇입니까?

분류에서Dev

addAttachmentData를 호출 할 때 첨부 파일에서 경로를 제거하는 방법은 무엇입니까?

분류에서Dev

Laravel-Slack Webhook에서 여러 이미지를 동적으로 첨부하는 방법은 무엇입니까?

분류에서Dev

Java를 사용하여 Outlook 이메일 2010에서 첨부 파일을 추출하는 방법은 무엇입니까?

분류에서Dev

파이썬으로 MSG 파일에서 첨부 파일을 저장하거나 추출하는 방법은 무엇입니까?

분류에서Dev

PHP가 저장하기 전에 파일 업로드를 거부하는 방법은 무엇입니까?

분류에서Dev

iOS에서 "기본 메일 앱"의 첨부 파일을 "MyApp"에 프로그래밍 방식으로 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    UNIX에서 HTML 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

  2. 2

    이메일 의도 Android에서 첨부 파일 추가를 활성화하는 방법은 무엇입니까?

  3. 3

    mpack을 사용하여 명령 줄에서 HTML 파일을 이메일에 첨부 파일로 보내는 방법은 무엇입니까?

  4. 4

    Qt로 이미지 첨부 파일이있는 이메일을 보내는 방법은 무엇입니까?

  5. 5

    스트림에서 PDF를로드하고 파일 첨부를 추가하는 방법은 무엇입니까?

  6. 6

    PHP에서 메일 첨부 파일로 암호화 된 Zip 아카이브를 보내는 방법은 무엇입니까?

  7. 7

    Thunderbird에서 첨부 파일 이름으로 이메일을 검색하는 방법은 무엇입니까?

  8. 8

    노드 js에서 이메일로 .ics 파일을 첨부하는 방법은 무엇입니까?

  9. 9

    디스크에 다운로드하지 않고 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

  10. 10

    SendGrid를 사용하여 파일을 이메일에 첨부 파일로 첨부하는 방법은 무엇입니까?

  11. 11

    이메일 헤더에서 첨부 파일을 추출하는 방법은 무엇입니까?

  12. 12

    Flask에서 이메일 메시지에 파일을 첨부하는 방법은 무엇입니까?

  13. 13

    파일 확장자로 이메일 첨부 파일 MIME 유형을 얻는 방법은 무엇입니까?

  14. 14

    Dreamweaver가 HTML 파일을 열 때 첨부 된 스크립트 및 CSS 파일을로드하지 못하도록하는 방법은 무엇입니까?

  15. 15

    첨부 파일이있는 Outlook 이메일에서 Excel로 정보를 실시간으로 자동 추출하는 방법은 무엇입니까?

  16. 16

    C #에서 이메일에 RAR 파일을 첨부하는 방법은 무엇입니까?

  17. 17

    SendGrid (자바)를 통해 Google App Engine에서 보낸 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

  18. 18

    이메일의 자산에서 PDF 파일을 첨부하는 방법은 무엇입니까?

  19. 19

    첨부 된 이미지를 mkv 썸네일로 표시하는 방법은 무엇입니까?

  20. 20

    .NET 이메일 용 HTML 템플릿에 이미지를 첨부하는 방법

  21. 21

    Mozilla Thunderbird에서 이메일에 이벤트를 첨부하는 방법은 무엇입니까?

  22. 22

    http로 dart에서 mailgun을 사용하여 첨부 파일을 추가하는 방법은 무엇입니까?

  23. 23

    명령 줄에서 접미사로 첨부 파일이있는 이메일을 보내는 방법은 무엇입니까?

  24. 24

    addAttachmentData를 호출 할 때 첨부 파일에서 경로를 제거하는 방법은 무엇입니까?

  25. 25

    Laravel-Slack Webhook에서 여러 이미지를 동적으로 첨부하는 방법은 무엇입니까?

  26. 26

    Java를 사용하여 Outlook 이메일 2010에서 첨부 파일을 추출하는 방법은 무엇입니까?

  27. 27

    파이썬으로 MSG 파일에서 첨부 파일을 저장하거나 추출하는 방법은 무엇입니까?

  28. 28

    PHP가 저장하기 전에 파일 업로드를 거부하는 방법은 무엇입니까?

  29. 29

    iOS에서 "기본 메일 앱"의 첨부 파일을 "MyApp"에 프로그래밍 방식으로 추가하는 방법은 무엇입니까?

뜨겁다태그

보관