我正在尝试安装Laravel Mail,以便正确发送带有抄送收件人的电子邮件。
$email_addresses = ['test1@example.com','test2@example.com','test3@example.com']
$to_email = array_shift($email_addresses);
Mail::mailer('mandrill')
->to([$to_email])
->cc($email_addresses)
->send(new PortalEmail($message));
但它正在向抄送电子邮件列表中的每个地址发送电子邮件,没有抄送收件人。而是向所有抄送地址的收件人发送电子邮件副本,电子邮件地址为to
电子邮件地址。
3条答案
按热度按时间2ic8powd1#
这是Mandrill的一个特点。您可以在您的帐户中全局更改此设置,也可以传入自定义标头以针对每条消息强制执行此设置。
全局账号设置
全局更改设置的文档位于https://mailchimp.com/developer/transactional/docs/outbound-email/#multiple-recipients。
从文档:
要控制收件人是否可以在邮件的
To
标题中看到彼此的信息,请导航到Sending Defaults
页面,然后选择或取消选择Expose The List Of Recipients When Sending To Multiple Addresses
。您可以在API调用中使用preserve_recipients
参数或X-MC-PreserveRecipients
SMTP标头来覆盖这些全局设置。每条消息覆盖
要在每个邮件的基础上覆盖此全局设置,您可以使用自定义
X-MC-PreserveRecipients
标题发送电子邮件。为此,请将
headers()
函数添加到PortalEmail
邮件:这将打开
preserve_recipients
设置,以便Mandrill不会修改To
/Cc
头。客户标头的文档位于https://mailchimp.com/developer/transactional/docs/smtp-integration/#x-mc-preserverecipients。
从文档:
如果您一次发送给多个收件人,并希望所有收件人都能看到彼此的信息,请将此选项设置为
true
。如果设置为false
,Mailchimp将重写To
和Cc
头,以仅显示有关单个收件人的信息。有关Laravel邮件头的文档位于https://laravel.com/docs/10.x/mail#headers。
hc8w905p2#
使用https://github.com/PHPMailer/PHPMailer这是非常简单和有用的代替Laravel邮件
wlwcrazw3#
您使用->to($to_email)将收件人设置为列表中的第一个电子邮件地址。然后,您可以使用->cc($email_addresses)将剩余的电子邮件地址传递给cc方法。