0

我正在处理应用程序的邮箱,在发送电子邮件后,我想将其附加到“已发送”邮箱中,并能够检索收件人(收件人、抄送和密件抄送)。

这适用于以下代码...

$envelope = imap_mail_compose([
    'subject' => 'test',
    'from' => 'from@test.fr',
    'to' => 'to@test.fr',
    'cc' => 'cc@test.fr',
    'bcc' => 'bcc@test.fr'
], $body);

imap_append($imap, '{ssl0.ovh.net:xxx/ssl}SENT', $envelope);

...除了密件抄送。如果我在附加后检索电子邮件标题,似乎没有密件抄送,而应该有!(我可以检索到和抄送地址)。

我找不到原因。我犯错了吗?我是不是误会了什么?

编辑:好的,imap_mail_compose bcc 仍然不可见(那么为什么我们可以添加一个“bcc”参数,如果不使用它呢?)。那么,有没有办法附加密件抄送地址?

4

1 回答 1

0

好的,发现诡计了。

我使用 imap_mail_compose 创建全局消息字符串,如下所示。

然后,我将密件抄送地址附加到该字符串中:

// The Bcc string, from an array
$bcc = implode(',', $data['bcc']);

// create the global message string
$envelopeStr = imap_mail_compose($data, $body);

// Appending the Bcc addresses manually
if (!empty($bcc)) {
    // Putting the Bcc just before the main recipients
    // There will be a "To:" parameter for sure, we could have used "Subject:" too
    $pos = strpos($envelopeStr , "To:");
    // Adding the string
    if ($pos !== false) {
        $bccStr = "Bcc: " . $bcc . "\r\n";
        $envelopeStr = substr_replace($envelopeStr , $bccStr, $pos, 0);
    }
}
于 2017-11-20T09:52:11.873 回答