diff --git a/backend/components/parsers/MailParser.php b/backend/components/parsers/MailParser.php new file mode 100644 index 0000000..29c4146 --- /dev/null +++ b/backend/components/parsers/MailParser.php @@ -0,0 +1,105 @@ +parts) && count($structure->parts)) { + for ($i = 0; $i < count($structure->parts); $i++) { + $attachments[$i] = array( + 'is_attachment' => false, + 'filename' => '', + 'name' => '', + 'attachment' => ''); + + if ($structure->parts[$i]->ifdparameters) { + foreach ($structure->parts[$i]->dparameters as $object) { + if (strtolower($object->attribute) == 'filename') { + $attachments[$i]['is_attachment'] = true; + $attachments[$i]['filename'] = $object->value; + } + } + } + + if ($structure->parts[$i]->ifparameters) { + foreach ($structure->parts[$i]->parameters as $object) { + if (strtolower($object->attribute) == 'name') { + $attachments[$i]['is_attachment'] = true; + $attachments[$i]['name'] = $object->value; + } + } + } + + if ($attachments[$i]['is_attachment']) { + $attachments[$i]['attachment'] = imap_fetchbody($inbox, $email_number, $i + 1); + if ($structure->parts[$i]->encoding == 3) { // 3 = BASE64 + $attachments[$i]['attachment'] = base64_decode($attachments[$i]['attachment']); + } elseif ($structure->parts[$i]->encoding == 4) { // 4 = QUOTED-PRINTABLE + $attachments[$i]['attachment'] = quoted_printable_decode($attachments[$i]['attachment']); + } + } + } // for($i = 0; $i < count($structure->parts); $i++) + } // if(isset($structure->parts) && count($structure->parts)) + + + if (count($attachments) != 0) { + + + foreach ($attachments as $at) { + + if ($at['is_attachment'] == 1) { + //die(__DIR__); + file_put_contents('test.csv', $at['attachment']); + + } + } + + } + + } + + // echo $output; + } + /* close the connection */ + imap_close($inbox); + } +} \ No newline at end of file diff --git a/backend/models/UploadFileParsingForm.php b/backend/models/UploadFileParsingForm.php index 1286e4f..2c83b34 100644 --- a/backend/models/UploadFileParsingForm.php +++ b/backend/models/UploadFileParsingForm.php @@ -15,8 +15,11 @@ class UploadFileParsingForm extends Model * @var UploadedFile file attribute */ public $file; - public $first_line; - public $first_column; + public $importer; + public $action; +// public $delimiter; +// public $delimiter_flag; +// public $delete_prefix; /** * @return array the validation rules. @@ -25,8 +28,11 @@ class UploadFileParsingForm extends Model { return [ [['file'], 'file', 'extensions' => ['csv', 'xml'] ], - ['first_line', 'integer'], - ['first_column', 'integer'] + ['importer', 'safe'], + ['action', 'boolean'] +// ['delimiter', 'string', 'max' => 1], +// ['delimiter', 'default', 'value' => ';'], + ]; } diff --git a/backend/views/parser/index.php b/backend/views/parser/index.php index f460661..a075f3a 100644 --- a/backend/views/parser/index.php +++ b/backend/views/parser/index.php @@ -8,10 +8,12 @@ use yii\helpers\Html; ['enctype' => 'multipart/form-data',],'action'=>['parser/results']]) ?>