размещать данные на URL, генерировать PDF и отправлять на почтовый адрес - PullRequest
0 голосов
/ 01 октября 2018

В основном, на моем сайте есть номера студентов.Я хочу создать отчет (PDF) и отправить туда адрес электронной почты.Чтобы создать один отчет, потребуется 2 минуты.Я хочу отправить отчет всем им в один клик.Я публикую идентификаторы студентов в контроллере с помощью метода угловых постов и создаю отчет по одному.Но показывает, что ошибка 405. не допускается.

Угловой код:

 $scope.sendReportToCentre = async function(candidateid){

           await angular.forEach(candidateid,async function(value){

                 $('#spinner').css('display', 'block');
               await $http.post(window.site_url + 'Candidates/MailResult', {
                        'candId': value,
                    })
                    .then(function(response) {
                        if (response.data == 202) {
                            toastr.success('Mail sent successfully.');
                            $scope.getCandidates();
                        } else {
                            toastr.error('Code: ' + response.data, 'Error');
                        }
                        $('#spinner').css('display', 'none');
                    }).error(function(response) {
                        toastr.error(response.data);
                        $('#spinner').css('display', 'none');
                    });
             });

        }

PHP (контроллер):

 public function MailResult($candId) {

        $postdata = file_get_contents("php://input");
        $request = json_decode($postdata);

        $candId = $request->candId;
...
...//PROCEEDING WITH REPORT GENERATION & MAIL END ...

$data = [
            'personalizations' => [
                [
                    'to' => [
                        [ 'email' => "xxx@gmail.com"]
                    ],
                    'subject' => 'subject'
                ]
            ],
            'from' => [
                'email' => 'contact@moebiusutra.com',
                'name' => 'Moebiusutra'
            ],
            'content' => [
                [
                    'type' => 'text/html',
                    'value' => $message
                ]
            ],
            'track_settings' => [
                [
                    'click_tracking' => true,
                    'open_tracking' => true
                ]
            ],
            'attachments' => [
                [
                    'content' => base64_encode(file_get_contents(APPPATH . "/results_pdf/$merged_file_name")),
                    'type' => 'application/pdf',
                    'filename' => $merged_file_name,
                    'disposition' => 'attachment'
                ]
            ]
        ];

        $response = $sg->client->mail()->send()->post($data);
        if ($response->statusCode() == 202) {
            $this->db->where('candId', $candId);
            $this->db->update('tbl_candidates', array('candResultMailed' => 1));
        }



}
...