在user manual of Codeigniter's Email Library的电子邮件功能参考下,您会看到$this->email->from()
有两个参数:电子邮件地址以及设置为'Your Name'
的{{1}}第二个参数。
但是当谈到$this->email->to()
时,我们无法设置收件人的姓名。虽然我们可以在现实世界中看到(例如gmail),但请求已经按照预期得到了回答。
答案 0 :(得分:2)
不幸的是,函数to()
没有提供设置收件人姓名的任何方法。
但是,您可以扩展Email
类并手动添加其他功能,例如设置名称。
否则您应该使用其他工具发送电子邮件。例如PHPMailer
。
答案 1 :(得分:2)
请不要浪费时间尝试使用以下代码传递收件人的姓名:
$this->email->to('John Smith <john@example.com>');
因为 to()函数清除了用clean_email()传递的所有参数
public function to($to)
{
$to = $this->_str_to_array($to);
$to = $this->clean_email($to);
// ...
/**
* Clean Extended Email Address: Joe Smith <joe@smith.com>
*
* @access public
* @param string
* @return string
*/
public function clean_email($email)
{
if ( ! is_array($email))
{
if (preg_match('/\<(.*)\>/', $email, $match))
{
return $match['1'];
}
else
{
return $email;
}
}
// ...
答案 2 :(得分:1)
我刚刚在Codeigniter中找到了绕过清洁过程的技巧。
您应该手动设置电子邮件标题,而不是使用$this->email->to()
。
$this->email->set_header('To', '"' . $recipient_display_name . '" <'. $recipient_email . '>');
我还没有提供收件人电子邮件列表的测试,但是我认为想法是相同的。