1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10: 11:
12:
13:
14:
15: 16: 17: 18: 19:
20: class NSendmailMailer extends NObject implements IMailer
21: {
22:
23: 24: 25: 26: 27:
28: public function send(NMail $mail)
29: {
30: $tmp = clone $mail;
31: $tmp->setHeader('Subject', NULL);
32: $tmp->setHeader('To', NULL);
33:
34: $parts = explode(NMail::EOL . NMail::EOL, $tmp->generateMessage(), 2);
35:
36: NDebug::tryError();
37: $res = mail(
38: str_replace(NMail::EOL, PHP_EOL, $mail->getEncodedHeader('To')),
39: str_replace(NMail::EOL, PHP_EOL, $mail->getEncodedHeader('Subject')),
40: str_replace(NMail::EOL, PHP_EOL, $parts[1]),
41: str_replace(NMail::EOL, PHP_EOL, $parts[0])
42: );
43:
44: if (NDebug::catchError($e)) {
45: throw new InvalidStateException('mail(): ' . $e->getMessage(), 0, $e);
46:
47: } elseif (!$res) {
48: throw new InvalidStateException('Unable to send email.');
49: }
50: }
51:
52: }
53: