brandembassy / mail
该软件包已被废弃且不再维护。未建议替代软件包。
v2.4.0
2016-06-25 15:15 UTC
Requires
- php: >=5.6.0
- ext-iconv: *
- nette/utils: ~2.4
Requires (Dev)
- nette/di: ~2.3
- nette/tester: ~2.0
- tracy/tracy: ^2.3
Suggests
- ext-fileinfo: to detect type of attached files
Conflicts
- nette/nette: <2.2
This package is not auto-updated.
Last update: 2018-08-29 21:29:38 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([ 'host' => 'smtp.gmail.com', 'username' => 'john@gmail.com', 'password' => '*****', 'secure' => 'ssl', 'context' => [ 'ssl' => [ 'capath' => '/path/to/my/trusted/ca/folder', ], ], ]); $mailer->send($mail);
您还可以创建自己的邮件发送器 - 它是一个实现Nette\Mail\IMailer接口的类。