Odesílání emailů. Žádný nedorazí

r2294743
Člen | 16
+
0
-

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

sendmail mailer odesila maily pomoci interni php funkce mail, asi ji nemas spravne nastavenou

r2294743
Člen | 16
+
0
-

@DavidMatějka Vˇim, že to bude blbý dotaz, ale jak mám správně nastavit php.ini?

David Matějka
Moderator | 6445
+
0
-

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

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

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

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:

pokud chceš posílat emaily nad rámec těchto limitů, budeš muset bohužel platit.