Я пытаюсь создать проект электронной почты, который будет открыт Outlook (чтобы пользователь мог вносить изменения до фактической отправки). Я использую PHPMailer, и все работает: кодирование, вложения, все – кроме поля BCC .
<?php // non-essential stuff omitted $mail = new PhpMailer(); $mail->CharSet = 'UTF-8'; $body = '<html><body><p>does not matter</p></body></html>'; // set To: foreach ($contacts as $address) { if ($this->looksLikeEmail($address)) { $mail->addAddress($address); } } // set CC: $businessContacts = $this->loadCcEmails(); foreach ($businessmenContacts as $address) { if ($this->looksLikeEmail($address)) { $mail->addCC($address); } } // set BCC: $mail->addBCC($this->bccAddress); $mail->Body = $body; // generate MIME headers and body $mail->preSend(); // do not send - get the mail as a string $emailFull = $mail->MIMEHeader . $mail->LE . $mail->MIMEBody; // send to browser header('Content-Description: File Transfer'); // handled by default e-mail client header('Content-Type: message/rfc822'); header('Content-Disposition: inline; filename="template.eml"'); header('Cache-Control: private'); header('Content-Length: ' . strlen($emailFull)); echo $emailFull; exit;
Я добавляю поле BCC, как обычно, и присутствует в файле template.eml
сгенерированном PHP:
Date: Thu, 2 Jun 2016 10:53:35 +0200 To: foo@example.com Cc: bar@example.com Bcc: baz@example.com Subject: =?UTF-8?Q?TESTOVAC=C3=8D?= Message-ID: <f2693cd5b0b081a75408beef87bfc651@localizer> X-Unsent: 1 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_f2693cd5b0b081a75408979287bfc651" Content-Transfer-Encoding: 8bit
и т.п.
Однако при открытии в Outlook 2010 поле BCC не заполняется вообще; когда тот же файл открывается в Thunderbird, BCC заполняется. Есть ли способ заставить Outlook предварительно заполнить BCC в черновике без прямой автоматизации Outlook (у меня нет контроля над компьютерами пользователей, только на сервере )?