【问题标题】:PHP output bcc object values from phpmailerPHP 从 phpmailer 输出 bcc 对象值
【发布时间】:2015-11-25 17:20:35
【问题描述】:

我正在使用 phpmailer,并希望输出它发送到的密件抄送电子邮件地址以用于记录目的。 ($mail->AddBCC())

我可以用简单的 print_r($mail) 输出 $mail 对象...我只想输出:

print_r($mail->all_recipients:private);

但这不起作用。 我试过了:

print_r($mail->{'all_recipients:private'});

但这也行不通。

print_r($mail);

显示:

[AltBody] => 
[WordWrap] => 0
[Mailer] => smtp
[Sendmail] => /usr/sbin/sendmail
[PluginDir] => 
[ConfirmReadingTo] => 
[Hostname] => 
[MessageID] => 
[Host] => smtp.gmail.com
[Port] => 587
...
[all_recipients:private] => Array
    (
        [exampl1@test.com] => 1
        [exampl2@test.com] => 1
        [exampl3@test.com] => 1
    )
...

【问题讨论】:

  • print_r($mail['all_recipients:private']) ?
  • :private 表示all_recipients 是 phpmailer 对象的 PRIVATE 属性。它不是键名的一部分。这意味着您无法从对象的“外部”访问它。您只能在 print_r 输出中看到它,因为 print_r 用于调试目的,并且可以显示类似的私有属性。
  • 如果bcc 属性被报告为private,那么您运行的是一个非常旧的PHPMailer 版本,因为几年前它已更改为protectedget the latest
  • 是的...我正在运行一个非常旧的版本。我更新了,现在数据受到保护。但是,我仍然得到:“无法访问受保护的属性” - 我认为这是答案。我无法以这种方式访问​​数据并使用 getAllRecipientAddresses() 方法。

标签: phpmailer


【解决方案1】:

只需调用print_r($mail->getBccAddresses()); 即可获取密件抄送地址数组,如the sourcethe docs 中所示。

【讨论】:

  • 请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为何能解决问题的说明。一个大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。
  • 您希望我添加样板华夫饼“以从邮件对象中获取密件抄送地址数组,调用 $mail->getBccAddresses()”,就好像它添加了任何东西一样,特别是因为 OP 已经表明它们是) 知道如何调用对象上的方法和 b) 知道如何输出内容?函数的名称是 OP 缺少的唯一项。
  • 我要求你考虑一些事情。无论是关于他们收到的确切格式的一些信息,还是在调用函数时可能有用的任何其他信息。请记住,在尝试解决问题时,OP 可能不是唯一会看到此答案的人。
  • 我运行的是一个非常旧的版本,似乎没有 getBccAddresses()?我更新了,现在数据受到保护。但是,我仍然得到:“无法访问受保护的属性” - 我认为这是答案。我无法以这种方式访问​​数据并使用 getAllRecipientAddresses() 方法。
  • 很好,您更新了,但您真的阅读了我的回答吗?调用getBccAddresses() 而不是直接尝试访问bcc 属性;这样你就不会得到错误。
猜你喜欢
  • 2017-09-25
  • 2013-01-19
  • 2019-11-05
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
  • 2020-04-17
  • 1970-01-01
  • 2011-02-21
相关资源
最近更新 更多