函数中的 Swfitmailer 作用域
Swfitmailer Scope in Function
我有一个小函数可以实现使用 Swift_Mailer
来处理发送电子邮件:
public function send(string $subject, $to, string $msg, $from = '')
{
if (!empty($to)) {
if (empty($from)) {
$smtpSettings = $this->loadSettings();
$from = [$smtpSettings['from_email'] => $smtpSettings['from_name']];
}
var_dump($to);
$email = (new \Swift_Message($subject))
->setFrom($from)
->setTo($to)
->setBody($msg);
// Send the message
$result = $this->swift->send($email);
} else {
var_dump('nein');
}
}
这里使用的是:
$mailer->send(
'Some Subject',
[$email],
'Hello, world'
);
这条returns这条消息:
0: Address in mailbox given [] does not comply with RFC 2822, 3.6.2.
快速谷歌后,Swift_Message
实例似乎没有正确获取 $to
值。
我将 var_dump($to)
添加到脚本中以查看其中的实际内容,我得到:
array(1) {
string(19) "someemail@domain.com"
}
上面的电子邮件是我的真实电子邮件的伪装,我 copy/pasted 进入 thunderbird 并发送了一封电子邮件到 - 很好,所以我知道电子邮件是有效的。
但是,错误信息似乎显示没有通过电子邮件。我的代码或多或少反映了 documentation 但出于某种原因,我的电子邮件未通过。
Swift_Message
是否存在一些奇怪的范围问题? $subject
或 $from
似乎没有出错,那么为什么 $to
可能不在范围内?
AbraCadaver 引导我走向正确的道路,比返回给我的错误信息更重要。
我从 documentation 复制了原始代码,并用相应的 $var
逐一替换了值,一切正常,甚至 $to
- 消息是红色的鲱鱼。
然而,$from
变量破坏了脚本。该值的格式不正确,修正了脚本的格式。
我将 $from
设置为 ['theemail@domain.com' => 'Some Name']
,一切正常。
我有一个小函数可以实现使用 Swift_Mailer
来处理发送电子邮件:
public function send(string $subject, $to, string $msg, $from = '')
{
if (!empty($to)) {
if (empty($from)) {
$smtpSettings = $this->loadSettings();
$from = [$smtpSettings['from_email'] => $smtpSettings['from_name']];
}
var_dump($to);
$email = (new \Swift_Message($subject))
->setFrom($from)
->setTo($to)
->setBody($msg);
// Send the message
$result = $this->swift->send($email);
} else {
var_dump('nein');
}
}
这里使用的是:
$mailer->send(
'Some Subject',
[$email],
'Hello, world'
);
这条returns这条消息:
0: Address in mailbox given [] does not comply with RFC 2822, 3.6.2.
快速谷歌后,Swift_Message
实例似乎没有正确获取 $to
值。
我将 var_dump($to)
添加到脚本中以查看其中的实际内容,我得到:
array(1) {
string(19) "someemail@domain.com"
}
上面的电子邮件是我的真实电子邮件的伪装,我 copy/pasted 进入 thunderbird 并发送了一封电子邮件到 - 很好,所以我知道电子邮件是有效的。
但是,错误信息似乎显示没有通过电子邮件。我的代码或多或少反映了 documentation 但出于某种原因,我的电子邮件未通过。
Swift_Message
是否存在一些奇怪的范围问题? $subject
或 $from
似乎没有出错,那么为什么 $to
可能不在范围内?
AbraCadaver 引导我走向正确的道路,比返回给我的错误信息更重要。
我从 documentation 复制了原始代码,并用相应的 $var
逐一替换了值,一切正常,甚至 $to
- 消息是红色的鲱鱼。
然而,$from
变量破坏了脚本。该值的格式不正确,修正了脚本的格式。
我将 $from
设置为 ['theemail@domain.com' => 'Some Name']
,一切正常。