PHPMailer 或 php 邮件功能 - 显示密件抄送地址

Posted

技术标签:

【中文标题】PHPMailer 或 php 邮件功能 - 显示密件抄送地址【英文标题】:PHPMailer or php mail function - show BCC address 【发布时间】:2013-08-15 01:58:39 【问题描述】:

当某些事件触发时,我正在使用 phpMailer 将邮件发送到客户端数据库。显然,我不希望每个人都获得客户电子邮件的完整列表,所以我使用 PHPMailer 在密件抄送中发送这些邮件。它工作正常,但有一个问题。

收到电子邮件的客户在目标电子邮件的字段中一无所获。只是空白。难道他不能看到我发送的他自己的地址和姓名吗?这有助于重定向电子邮件的人了解目标邮件。

PHP 原生的 mail() 函数也是如此。

有没有办法解决这个问题?

先谢谢了!

【问题讨论】:

【参考方案1】:

不,这不是密件抄送的工作方式。

如果您通过密件抄送收到电子邮件,您的邮件客户端将在“收件人”字段中显示原始收件人的地址,而不是您的。

这适用于所有密件抄送邮件;它与phpMailer无关。

如果您希望收件人在“收件人”字段中看到某些内容,则需要使用虚拟值填充它 - 例如,“donotreply@yourdomain.com”。

通过密件抄送发送这样的消息是件好事,所以你做的是正确的事。但是,如果您真的希望最终用户在“收件人”字段中看到他自己的电子邮件地址,那么唯一的方法就是将消息作为单独的电子邮件发送给每个用户,因此您使用“收件人”字段并不是“密送”。但是,这会显着增加邮件系统的负载,因此可能不是答案。

【讨论】:

我写了这个程序来替换另一个像你说的那样运行的程序,一次发送 1 封邮件......它在时间和资源上变得非常昂贵。 好吧,在这种情况下,您最好的选择是在“to”字段中输入一个虚拟值并将其保留。要么,要么使用成熟的邮件列表软件,如majordomo。【参考方案2】:

这就是电子邮件的本质。当某人被密件抄送时,他们只会看到收件人:、发件人:和抄送:字段。 BCC 字段将隐藏每个电子邮件地址,甚至是收件人的。

来自维基:

“密件抄送:”字段的使用方式有三种。

在第一种情况下,当准备发送包含“BCC:”字段的邮件时,即使所有收件人(包括“BCC:”字段中指定的收件人)也会删除“BCC:”行将发送消息的副本。

在第二种情况下,“收件人:”和“抄送:”行中指定的收件人都将收到一份邮件副本,其中删除了“密件抄送:”行,但“密件抄送:”上的收件人行获取包含“密件抄送:”行的消息的单独副本。 (当“密件抄送:”字段中有多个收件人地址时,某些实现实际上会向每个收件人发送一个单独的消息副本,其中“密件抄送:”仅包含该特定收件人的地址。)

最后,由于“密件抄送:”字段可能不包含地址,因此可以发送“密件抄送:”字段而无需向收件人表明密件已发送给某人的任何地址。

【讨论】:

问题是,如果我在密件抄送中通过 Gmail 发送邮件,收件人会看到他自己的地址...那么这怎么可能? 那是实际邮件服务器的实现,而不是任何类型的邮件功能或语言。其次是第二种情况的括号中的位。如果您想更改通过密件抄送发送的方式,您必须研究如何修改您的 SMTP 服务器。

以上是关于PHPMailer 或 php 邮件功能 - 显示密件抄送地址的主要内容,如果未能解决你的问题,请参考以下文章

夯实PHP基础PHP发送邮件(PHPMailer)

使用php发送电子邮件(phpmailer)

PHP 利用 QQ 邮箱发送邮件「PHPMailer」

phpmailer错误“无法实例化邮件功能”

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)

tp5发送email功能: PHPmailer