/**
  * Sends e-mail.
  * @param  Mail
  * @return void
  */
 public function send(Mail $mail)
 {
     $tmp = clone $mail;
     $tmp->setHeader('Subject', NULL);
     $tmp->setHeader('To', NULL);
     $parts = explode(Mail::EOL . Mail::EOL, $tmp->generateMessage(), 2);
     Nette\Debug::tryError();
     $res = mail(str_replace(Mail::EOL, PHP_EOL, $mail->getEncodedHeader('To')), str_replace(Mail::EOL, PHP_EOL, $mail->getEncodedHeader('Subject')), str_replace(Mail::EOL, PHP_EOL, $parts[1]), str_replace(Mail::EOL, PHP_EOL, $parts[0]));
     if (Nette\Debug::catchError($msg)) {
         throw new \InvalidStateException($msg);
     } elseif (!$res) {
         throw new \InvalidStateException('Unable to send email.');
     }
 }
Exemple #2
0
	/**
	 * Sends email.
	 * @param	Mail
	 * @return	void
	 */
	public function send(Mail $mail)
	{
		$data = $mail->generateMessage();

		$this->connect();

		$from = $mail->getHeader('From');
		if ($from) {
			$from = array_keys($from);
			$this->write("MAIL FROM:<$from[0]>", 250);
		}

		$recipients = array_merge((array) $mail->getHeader('To'), (array) $mail->getHeader('Cc'), (array) $mail->getHeader('Bcc'));
		foreach ($recipients as $email => $name) {
			$this->write("RCPT TO:<$email>", array(250, 251));
		}

		$this->write('DATA', 354);
		$data = preg_replace('#^\.#m', '..', $data);
		$this->write($data);
		$this->write('.', 250);

		$this->write('QUIT', 221);

		$this->disconnect();
	}
	protected function sendContactEmail($values) {
		
		$mail = new Mail;
		
		$mailConfig = Nette\Environment::getConfig('mail');
		
		$mail->setFrom($values['email']);
		$mail->addTo($mailConfig->to); //load from config.ini
//		$mail->setSubject($mailConfig->subject);
		
		$mail->setBody($values['message']);
		
		$template = $this->createTemplate();
		$template->setFile(APP_DIR . '/templates/emails/contact.latte');
		
		$template->title = $mailConfig->subject;
		$template->values = $values;
		
		$mail->setHtmlBody($template);
		
		$mail->send();
		
		$this->flashMessage('Správa bola odoslaná');
		
		$this->redirect('this');
		
	}