phpmailer не отправляет электронную почту и не отображает ошибки - PullRequest
0 голосов
/ 17 июня 2019

Я использую SMTP Gmail с phpmailer, я хочу обновить свои данные и отправил данные с помощью phpmailer. обновление данных прошло успешно, но phpmailer не отправляет это письмо и не отображает никаких ошибок. как это исправить?

это мой код


    date_default_timezone_get("Asia/Jakarta");
    $getdatasUser = $this->db->query("SELECT IDStatusPendidikan, IDPosisiJabatan FROM mspencaker WHERE IDUser='$iduser'")->result_array();
       $ab = $getdatasUser[0]['IDStatusPendidikan'];
       $ac = $getdatasUser[0]['IDPosisiJabatan'];
       $dateNow = date("Y-m-d");
       $lowonganhasil = $this->db->query("SELECT a.NamaLowongan, a.GajiPerbulan, a.IDLowongan, a.Penempatan, a.SyaratKhusus, b.NamaPerusahaan, b.IDPerusahaan, a.TglBerakhir FROM mslowongan as a JOIN msperusahaan as b ON b.IDPerusahaan = a.IDPerusahaan WHERE a.IDStatusPendidikan='$ab' AND a.IDPosisiJabatan='$ac' AND a.TglBerakhir >= '$dateNow' ORDER BY a.TglBerakhir DESC LIMIT 7")->result_array();
      // gambar
         if (file_exists(BASEPATH .'assets/file/temp/'.$idpencakertemp.'.jpg')){
             rename(realpath('assets/file/temp/'.$idpencakertemp.'.jpg'), realpath('assets/file/pencaker').'/'.$getmspencakerdata->IDPencaker.'.jpg');
            }
       // $this->load->model('EmailModel');
       $this->load->library('PHPMailer');
       $this->load->library('SMTP');

       $email_admin = 'example@gmail.com';
       $nama_admin = 'Nickname';
       $password_admin = 'mypassword';

       $mail = new PHPMailer();
       $mail->isSMTP();  
       $mail->SMTPKeepAlive = true;
       $mail->Charset  = 'UTF-8';
       $mail->IsHTML(true);
       // $mail->SMTPDebug = 2;
       $mail->SMTPAuth = true;
       $mail->Host = 'smtp.gmail.com'; 
       $mail->Port = 587;
       $mail->SMTPSecure = 'ssl';
       $mail->Username = $email_admin;
       $mail->Password = $password_admin;
       $mail->Mailer   = 'smtp';
       $mail->WordWrap = 100;       

       $mail->setFrom($email_admin);
       $mail->FromName = $nama_admin;
       $mail->addAddress($getmspencakerdata->Email);
       $mail->AddEmbeddedImage('assets/img-acc-pencaker.png', 'acc');
       $mail->Subject          = 'Akun Verifikasi '.$getmspencakerdata->NamaPencaker;
       $mail_data['subject']   = $getmspencakerdata->NamaPencaker;
       $mail_data['induk']     = $getmspencakerdata->NomorIndukPencaker;
       $mail_data['username']  = $getmsuserdata->Username;
       $mail_data['password']  = $getmsuserdata->Password;
       $mail_data['lowongan']  = $lowonganhasil;

       $message = $this->load->view('email_temp', $mail_data, TRUE);
       $mail->Body = $message;

       if ($mail->send()) {
          $this->session->set_flashdata('notifikasi', '<script>notifikasi("Pencaker Berhasil Ditambahkan", "success", "fa fa-check")</script>');
       } else {
           echo 'Message could not be sent.';
           echo 'Mailer Error: ' . $mail->ErrorInfo;
       }

, пожалуйста, помогите мне исправить этот код

1 Ответ

1 голос
/ 17 июня 2019

Две ошибки:

// $mail->SMTPDebug = 2;

Если вы отключите вывод отладки, это не должно вызывать удивления, когда вы не видите вывод отладки. Раскомментируйте это и установите 3, что является правильным уровнем для проблем с соединением.

Как узнать, что это проблема с подключением? Потому что вы делаете это:

$mail->Port = 587;
$mail->SMTPSecure = 'ssl';

Эта комбинация не будет работать. Либо используйте порт 587 и 'tls', либо 465 и 'ssl'; другие комбинации не будут работать.

Эти вопросы описаны в руководстве по устранению неполадок . Поскольку вы используете gmail, я рекомендую основывать ваш код на примере gmail, поставляемом с PHPMailer .

...