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