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í.