Odesílání emailů. Žádný nedorazí
- r2294743
- Člen | 16
Ahoj všem. Snažím se odeslat email, což vypadá takto:
class MailFactory
{
private $engine;
private $mailer;
private $facade;
private $user;
/**
* MailFactory constructor.
*
* @param ILatteFactory $engine
* @param Facade $facade
* @param User $user
*/
public function __construct(ILatteFactory $engine, Facade $facade, User $user)
{
$this->engine = $engine;
$this->facade = $facade;
$this->user = $user;
}
private function createConnection(){
$mailer = new SendmailMailer;
$smtpMailer = new SmtpMailer([
'host' => '***',
'username' => '***',
'password' => '***',
'secure' => 'ssl',
]);
$this->mailer = new FallbackMailer([
$mailer,
$smtpMailer,
]);
}
public function sendMail($values){
$this->createConnection();
$message = new Message;
$message->setFrom("Sandbox <info@sandbox.org>")
->addTo($values["email"])
->setSubject("Account Confirmed!")
->setHtmlBody($this->engine->create()->renderToString(__DIR__ . '/templates/sandbox.latte', $values->toArray()));
try {
$this->mailer->send($message);
} catch (SendException $e) {
Debugger::log($e, 'mailexception');
}
}
}
Pokud pošlu zprávu pomoí smtp, email se odešle. V případě, že ale posílám email pomoí SendmailMailer, nic nedorazí. Uniká mi někde nějaká chyba?
Editoval r2294743 (25. 3. 2018 12:08)
- David Matějka
- Moderator | 6445
sendmail mailer odesila maily pomoci interni php funkce mail
,
asi ji nemas spravne nastavenou
- David Matějka
- Moderator | 6445
a opravdu to potrebujes resit, kdyz ti funguje smtp mailer? v php.ini bys to musel taky nasmerovat na nejaky smtp (nebo na lokalni sendmail, ktery to bude posilat pres nejaky smtp)
- r2294743
- Člen | 16
@DavidMatějka Důvod, proč jsem chtěl vyhnout smtp je ten, že sem četl, že je tam omezení v posílání zpráv (google myslím 500 zpráv/den). Nevím, zda je to best practise posílat přes smtp, pokud jich budu posílat hodně. Pokud je i jiná možnost, budu rád za informace. :)
Editoval r2294743 (25. 3. 2018 12:47)
- kejlicz
- Člen | 201
A myslíš si, že pomocí funkce mail() to je nějaké neomezené. Stejně s to posílá přes SMTP server Tvého hostingu, což bude pravděpodobně ještě více omezené.
r2294743 napsal(a):
@DavidMatějka Důvod, proč jsem chtěl vyhnout smtp je ten, že sem četl, že je tam omezení v posílání zpráv (google myslím 500 zpráv/den). Nevím, zda je to best practise posílat přes smtp, pokud jich budu posílat hodně. Pokud je i jiná možnost, budu rád za informace. :)
- Jan Endel
- Člen | 1016
Ahoj,
pokud chceš posílat právě více zpráv než uvedených 500 za den, patrně už za tím stojí nějaký marketing. Interní funkce mail na to rozhodně není stavěná – ta je pro zasílání chybových zpráv a podobné záležitosti.
Pro posílání marketingových mailů doporučuju:
- Mailchimp (Jejich API) (do 2000 uživatelů měsíčně free)
- AWS SES (Jejich API) (prvních 62 000 mailů ten měsíc free)
pokud chceš posílat emaily nad rámec těchto limitů, budeš muset bohužel platit.