ublaboo mailing – produkční nic neodešle

Bazylek
Člen | 22
+
0
-

Dobrý den,

prosím o radu, kde dělám chybu. Používám Nette 3 a Ublaboo mailing pro odesílání emailů, kdy na localhost vše fungovalo. Po nahrání na hosting vše proběhne v pořádku vytvoří se eml, ale žádný email do schránky nepříjde.

common.neon

extensions:
	ublaboo.mailing: Ublaboo\Mailing\DI\MailingExtension

ublaboo.mailing:
	do: both # log|send|both
	logDirectory: '%appDir%/../log/mails' # toto je výchozí možnost
	mailImagesBasePath: %wwwDir% # toto je výchozí možnost
	mails: [
		default_sender: info@mywebsite.cz
		default_recipient: admin@mywebsite.cz
	]

App\Modules\Admin\SendmailPresenter.php

public function editFormSucceeded(Nette\Forms\Controls\SubmitButton $button): void
    {
        $values = $button->getForm()->getValues();
		$podpis = $this->siteLayout->get('nameWeb');
        $urlWebu = $this->siteLayout->get('urlWebu');
        $vytvoril = $this->user->getIdentity()->data['fullname'];
		...
		$messageUserData= new MessageUsersData($values->emails, $values->subject, $values->message, $vytvoril, $urlWebu, $podpis);
		// mailFactory načítám v App\Base\BasePresenter.php přes konstruktor
        $mail = $this->mailFactory->createByType(MessageUsersMail::class, $messageUserData);
        $mail->send();

		$this->flashMessage('Email byl úspěšně odeslán na email: ', 'green' );
        $this->redirect('default');
}

App\components\Messanger\

MessageUsersMail.php

declare(strict_types=1);

namespace App;

use Nette;
use Nette\Bridges\ApplicationLatte\TemplateFactory;
use Ublaboo\Mailing\AbstractMail;
use Ublaboo\Mailing\IComposableMail;
use Ublaboo\Mailing\IMessageData;
use Texy;

class MessageUsersMail extends AbstractMail implements IComposableMail
{


	//natavime přenos do šablony
	public function compose(Nette\Mail\Message $message, ?IMessageData $mailData): void
	{
		// dump($this->mailAddresses['default_sender']) OK
		$message->setFrom($this->mailAddresses['default_sender']);
		$message->addTo($mailData->emails);


		$text = $mailData->message;
		$texy = new Texy\Texy;

		// Filtr texy v šabloně
		$this->template->addFilter('texy', function ($text) use (& $texy) {
            //return $this->texy->process($text);
            return Nette\Utils\Html::el()->setHtml($texy->process($text));
        });

	}

}

MessageUsersData.php

declare(strict_types=1);

namespace App;

use Ublaboo\Mailing\IMessageData;

class MessageUsersData implements IMessageData
{
	public $subject;
	public $emails;
	public $message;
	public $created;
	public $urlWebu;
	public $signature;

    /**
	 * MessageUsersData constructor.
	 *
	 * @param $emails
	 * @param $subject
	 * @param $password
	 * @param $created
	 * @param $urlWebu
	 * @param $signature
	 */
	public function __construct($emails, $subject, $message, $created, $urlWebu, $signature)
	{
		$this->subject = $subject;
		$this->emails = $emails;
		$this->message = $message;
		$this->created = $created;
		$this->urlWebu = $urlWebu;
		$this->signature = $signature;
    }

}

App\components\Messanger\templlates

MessageUsersMail.latte

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="width=device-width" />
	<style type="text/css">

	</style>
	<title>{$mailData->subject}</title>
</head>
<body>

{$mailData->message|texy}
<br/>
<br/>
<p><a href="http://{$mailData->urlWebu}">{$mailData->signature}</a></p>
<p style="font-size:10px">Vytvořil: {$mailData->created}</p>
<br/>
</body>
</html>

Pokud použiji základní nastavení
App\Modules\Admin\SendmailPresenter.php

use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;

public function editFormSucceeded(Nette\Forms\Controls\SubmitButton $button): void
{
	$mail = new Message;
	$mail->setFrom('info@mywebsite.cz')
		->addTo('email@example.com')
		->setSubject('Pokus odeslání')
		->setBody("Dobrý den,\ntoto je zkušební zpráva.");
	$mailer = new SendmailMailer;
	$mailer->send($mail);
}

tak emaily do schránky přijdou.

Editoval Bazylek (2. 6. 2020 7:55)