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