xepan / mail
Nette Mail: 发送电子邮件
v2.3.5
2016-04-10 12:50 UTC
Requires
- php: >=5.3.1
- ext-iconv: *
- nette/utils: ~2.2
Requires (Dev)
- nette/di: ~2.3
- nette/tester: ~1.3
Suggests
- ext-fileinfo: to detect type of attached files
Conflicts
- nette/nette: <2.2
This package is not auto-updated.
Last update: 2024-09-26 01:00:04 UTC
README
几乎每个Web应用程序都需要发送电子邮件,无论是新闻通讯还是订单确认。这就是为什么Nette框架提供了必要的工具。
使用 Nette\Mail\Message
类创建电子邮件的示例
use Nette\Mail\Message; $mail = new Message; $mail->setFrom('John <john@example.com>') ->addTo('peter@example.com') ->addTo('jack@example.com') ->setSubject('Order Confirmation') ->setBody("Hello, Your order has been accepted.");
所有参数都必须以UTF-8编码。
并发送
use Nette\Mail\SendmailMailer; $mailer = new SendmailMailer; $mailer->send($mail);
除了使用 addTo()
指定收件人外,还可以使用 addCc()
指定副本收件人,以及使用 addBcc()
指定密件收件人。在这些方法中,包括 setFrom()
,我们都可以用三种方式指定收件人
$mail->setFrom('john.doe@example.com'); $mail->setFrom('john.doe@example.com', 'John Doe'); $mail->setFrom('John Doe <john.doe@example.com>');
可以使用 setHtmlBody()
方法定义HTML内容
$mail->setHTMLBody('<b>Sample HTML</b> <img src="background.gif">');
可以使用 $mail->addEmbeddedFile('background.gif')
插入嵌入图像,但这不是必需的。为什么?因为Nette框架会自动查找并插入HTML代码中引用的所有文件。可以通过将 FALSE
作为 setHtmlBody()
方法的第二个参数添加来抑制这种行为。
如果HTML电子邮件没有纯文本替代,它将自动生成。如果没有设置主题,它将从 <title>
元素中获取。
当然,也可以向电子邮件添加附件
$mail->addAttachment('example.zip');
电子邮件发送还能更简单吗?
自定义邮件发送器
默认邮件发送器使用PHP函数 mail
。如果您需要通过SMTP服务器发送邮件,可以使用 SmtpMailer
。
$mailer = new Nette\Mail\SmtpMailer(array( 'host' => 'smtp.gmail.com', 'username' => 'john@gmail.com', 'password' => '*****', 'secure' => 'ssl', )); $mailer->send($mail);
您还可以创建自己的邮件发送器 - 它是一个实现了Nette\Mail\IMailer接口的类。