PHPMailer attachment type and size limit

后端 未结 2 800
天命终不由人
天命终不由人 2021-01-27 03:11

i have one form and i am using PHPMailer to send data from that form to my email. Users can send attachments as well, but i have one rpoblem: how to make PHPMailer to deny attac

相关标签:
2条回答
  • 2021-01-27 03:22

    you can check the filesize using filesize() and the type using mime_content_type().

    the resulting code could look like:

    $maxsize = 2 * 1024 * 1024; // 2 MB
    $types = array('image/png', 'image/jpeg', 'image/gif'); // allowed mime-types
    
    if(filesize($filename) < $maxsize && in_array(mime_content_type($filename),$types)){
      $mail->AddAttachment($source, $filename);
    }
    

    EDIT: PHPMailer doesn't have a built-in possibility for those chacks - as you can see from the source, it only checks if the file exists when adding an attachment:

    if ( !@is_file($path) ) {
      throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE);
    }
    
    0 讨论(0)
  • 2021-01-27 03:26

    Use filesize() for checking the file size. For checking if the file is a image use getimagesize() which returns false if it's not an image, else it will return an array of info including mimetype (if you wan't to check for specific image types).

    0 讨论(0)
提交回复
热议问题