Posílání emailu v nette 2.1 dev – send() is deprecated
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- n.u.r.v.
 - Člen | 485
 
Ahoj, nevíte, jak poslat email v nette ve verzi 2.1 dev?
Toto jsem používal ve starší verzi, ale teď dostávám chybu že send() je deprecated…:
use Nette\Mail\Mailer;
/**
 * Pripravi menu.
 */
class EmailRepository extends Nette\Object {
    private $smtp = "192.168.1.1";
    public function sendEmail($from, $to, $subject, $text, $cc = null, $attachement = null) {
        if (!Validators::isEmail($from) or !Validators::isEmail($to) or Validators::isNone($subject) or Validators::isNone($text)) {
            return 0;
        } else {
            $mail = new \Nette\Mail\Message;
            if ($this->smtp != "") {
                $mailer = new Nette\Mail\SmtpMailer(array(
                    'host' => $this->smtp));
                $mail->setMailer($mailer);
            }
            $mail->setFrom($from)
                    ->addTo($to)
                    ->setSubject($subject);
            $mail->setHTMLBody($text);
            if ($attachement != null) {
                $mail->addAttachment($attachement);
            }
            if ($cc != null and Validators::isEmail($cc)) {
                $mail->addCc($cc);
            }
            try {
                return 1;
            } catch (Exception $e) {
                $error = $e->getMessage();
                return $error;
            }
        }
    }
}
Díky…

- David Matějka
 - Moderator | 6445
 
presne tak, jak ti to pise v erroru:
send() is deprecated; use IMailer::send() instead.
$mailer->send($mail);
				
- enumag
 - Člen | 2118
 
Tak použiješ SendmailMailer.
Ta metoda $message->send() taky používala právě tenhle pokud
jsi nenastavil vlastní.