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
+
0
-

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
+
0
-

presne tak, jak ti to pise v erroru:

send() is deprecated; use IMailer::send() instead.

$mailer->send($mail);
n.u.r.v.
Člen | 485
+
0
-

matej21 napsal(a):

presne tak, jak ti to pise v erroru:

send() is deprecated; use IMailer::send() instead.

$mailer->send($mail);

Díky, máš pravdu…Ještě jeden dotaz – kdybych nepoužíval smtp (smtp nastavení používám jen na localhostu), tak jak to bude v tomto případě?Díky

enumag
Člen | 2118
+
0
-

Tak použiješ SendmailMailer. Ta metoda $message->send() taky používala právě tenhle pokud jsi nenastavil vlastní.