我是新手,我正在尝试创建一个使用 phpmailer 类的静态电子邮件类。
我想做的是......
Email::send('from', 'to', 'subject', 'html message'); // works
但是如果我想添加附件...
Email::send('from', 'to', 'subject', 'html message')->attach('file/blah.txt');
这会引发一个致命错误:Call to undefined method PHPMailer::attach()
,我明白为什么,我只是不知道如何让 Email 类执行上述代码,如果可能的话。
下面是我实验过的。
class Email {
static $attach;
public static function send($from, $to, $subject, $message)
{
$email = new PHPmailer();
try {
$email->AddAddress($to);
$email->SetFrom($from);
$email->Subject = $subject;
$email->MsgHTML($message);
if (self::$attach) $email->AddAttachment(self::$attach);
$email->Send();
}
catch (phpmailerException $e)
{
return $e->errorMessage();
}
catch (Exception $e)
{
return $e->getMessage();
}
return $email;
}
public static function attach($attachment)
{
self::$attach = $_SERVER['DOCUMENT_ROOT'].$attachment;
}
}