Я отправляю вложения (CSV), которые я отправлял в течение многих лет с помощью mail (), но решил перейти на SMTP для повышения надежности.
Код 1 (вложение CSV)
$attachment = $this->CSVData; // "Date","Name","Dept" ... \n"2019-03-13","Dave" ...
$encoding = 'base64';
$contentType = 'text/csv';
$filename = $this->createFileName(); //Get FileDate and Name
$recipient = $delivery_email; // xxxxxxx@gmail.com
$subject = $this->emailHeader['subject'] . " CSV Data";
$message = 'Daily Data File';
$mail = new PHPMailer\PHPMailer\PHPMailer(true); // Passing `true` enables exceptions
try {
//Server settings
$mail->SMTPDebug = 0; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = SMTP_HOST; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = SMTP_USER; // SMTP username
$mail->Password = SMTP_PASS; // SMTP password
$mail->SMTPSecure = SMTP_AUTH; // Enable TLS encryption, `ssl` also accepted
$mail->Port = SMTP_PORT; // TCP port to connect to
//Recipients
$mail->setFrom($this->fromEmail, $this->fromEmailName); // Add a FROM
$addresses = explode(',', $recipient);
foreach ($addresses as $address) {
$mail->AddAddress(trim($address)); // Add a recipient(s)
}
if ( !empty($this->emailCC) ) $mail->addCC($this->emailCC); // Add a CC
//13-03-2019: Add the attachment to the email
$mail->AddStringAttachment($attachment, $filename, $encoding, $contentType);
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = $message;
$mail->AltBody = 'This email is formatted in HTML';
$mail->send();
$this->fo->printStatus('Email successfully sent to: '. $recipient );
return true;
} catch (Exception $e) {
$this->fo->printStatus( basename(__FILE__) .' '. __LINE__ . ': Message could not be sent. Mailer Error: '. $mail->ErrorInfo );
return false;
}
Мне доставляется письмо, НО ... Проблемы:
- При просмотре в браузере Gmail - появляется сообщение: «Сканеры вирусов Gmail временно недоступны - Прикрепленные файлы не проверенывирусы. Скачивайте эти файлы на свой страх и риск. "
- При просмотре в браузере Gmail - я не могу сохранить / загрузить файл?(нажатие на кнопку загрузки ничего не делает)
- При нажатии на вложение для просмотра в браузере, я теперь получаю сообщение об ошибке: «К сожалению. При предварительном просмотре этого документа произошла ошибка»
- Я пытаюсь «Показать оригинал»"и для загрузки электронной почты требуется более 30 секунд, в которой отображаются только закодированные в base64 данные
- Я пытался открыть папку входящих сообщений в Outlook, и после 5 минут не загруженных писем я отказался (полагая, что письмане закодированы должным образом или что-то, из-за чего внешний вид застревает)
Похоже, что он работает (то есть файл выглядит корректно на основании предварительного просмотра значка gmail), но я не могу ничего с этим поделать, и я неНе знаете, является ли это проблема Gmail или проблема с файлом.
Любой совет?