PHP imap_append 密件抄送
PHP imap_append with BCC
我正在处理一个应用程序的邮箱,在发送 e-mail 之后,我想将其附加到 "Sent" 邮箱中,并能够检索收件人(以、抄送和密件抄送)。
这与以下代码配合使用效果很好...
$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);
...密件抄送除外。如果我在附加后检索 e-mail headers ,似乎没有密件抄送,而应该有! (我可以检索到和抄送地址)。
我找不到原因。我做错了吗?我是不是误会了什么?
编辑: 好的,imap_mail_compose bcc 仍然不可见(如果不使用,为什么我们可以添加一个 "bcc" 参数?)。那么,没有办法附加密件抄送地址吗?
好的,找到技巧了。
我使用 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);
}
}
我正在处理一个应用程序的邮箱,在发送 e-mail 之后,我想将其附加到 "Sent" 邮箱中,并能够检索收件人(以、抄送和密件抄送)。
这与以下代码配合使用效果很好...
$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);
...密件抄送除外。如果我在附加后检索 e-mail headers ,似乎没有密件抄送,而应该有! (我可以检索到和抄送地址)。
我找不到原因。我做错了吗?我是不是误会了什么?
编辑: 好的,imap_mail_compose bcc 仍然不可见(如果不使用,为什么我们可以添加一个 "bcc" 参数?)。那么,没有办法附加密件抄送地址吗?
好的,找到技巧了。
我使用 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);
}
}