Я использую код Gmail Api в php для отправки писем клиентам.Почта содержит несколько вложений, и все работает хорошо, за исключением клиентов, которые используют приложение Apple Mail.Они видят дублированные вложения.То есть, если у почты 4 разных вложения, все, что они видят в приложении apple mail, это 4 одинаковых дублированных вложения.Пожалуйста, смотрите мой код ниже.
$objGMail = new Google_Service_Gmail($this->googleauth->client);
$strRawMessage = "";
$boundary = uniqid(rand(), true);
$subjectCharset = $charset = 'utf-8';
$strRawMessage .= 'To: ' .$toEmailsName . " <" . $ToEmail . ">" . "\r\n";
$strRawMessage .= 'Cc: ' .$ccEmailsName . " <" . $CcEmail . ">" . "\r\n";
$strRawMessage .= 'Bcc: ' .$BccEmailsName . " <" . $BccEmail . ">" . "\r\n";
$strRawMessage .= 'From: '.$fromName . " <" . $fromEmail . ">" . "\r\n";
$strRawMessage .= 'Subject: =?' . $subjectCharset . '?B?' . base64_encode($EmailSubject) . "?=\r\n";
$strRawMessage .= 'MIME-Version: 1.0' . "\r\n";
$finfo = finfo_open(FILEINFO_MIME_TYPE);
//Attachments
if (isset($post['UploadedFileName'])) {
for ($i = 0; $i < count($post['UploadedFileName']); $i++) {
if ($post['UploadedFileName'][$i] <> "") {
$filePath = './attachments/' . $post['UploadedFileName'][$i];
$mimeType = finfo_file($finfo, $filePath);
$fileName = $post['UploadedFileName'][$i];
$fileData = chunk_split(base64_encode(file_get_contents($filePath)), 76, "\n") . "\r\n";
$strRawMessage .= 'Content-type: Multipart/Mixed; boundary="' . $boundary . '"' . "\r\n";
$strRawMessage .= "\r\n--{$boundary}\r\n";
$strRawMessage .= 'Content-Type: '. $mimeType .'; name="'. $fileName .'";' . "\r\n";
$strRawMessage .= 'Content-ID: <' . $fromEmail . '>' . "\r\n";
$strRawMessage .= 'Content-Description: ' . $fileName . ';' . "\r\n";
$strRawMessage .= 'Content-Disposition: attachment; filename="' . $fileName . '"; size=' . filesize($filePath). ';' . "\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: base64' . "\r\n\r\n";
$strRawMessage .= $fileData;
$strRawMessage .= "--{$boundary}\r\n";
}
}
}
$strRawMessage .= 'Content-Type: text/html; charset=' . $charset . "\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";
$strRawMessage .= $EmailBody . "\r\n";
$mime = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '=');
$msg = new Google_Service_Gmail_Message();
$msg->setRaw($mime);
$objSentMsg = $objGMail->users_messages->send("me", $msg);