В основном, на моем сайте есть номера студентов.Я хочу создать отчет (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));
}
}