informace o probehnuti odeslani emailu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
vosy
Člen | 532
+
0
-

AHoj, chic zkusit odesilat emaily prez nette na localu.
Nette\Mail\Message
Mohu nejak zjistit jestli email byl uspesne odeslan?

romiix.org
Člen | 343
+
0
-

Napríklad odsedovaním \Nette\Mail\SmtpException. V prípade zlyhania sa vyhodí táto výnimka.

try {
	$message = new Nette\Mail\Message;
	$message->setFrom("from@mail.sk")
			->addTo("to@mail.sk")
			->setSubject("Predmet")
			->setHTMLBody("<b>Hello world!</b>");
	$this->mailer->send($message);
} catch (\Nette\Mail\SmtpException $e) {
	$presenter->flashMessage("Odoslanie mailu zlyhalo", "warning");
}
jiri.pudil
Nette Blogger | 1032
+
0
-

A v případě, že použiješ výchozí mailer (který posílá zprávy přes funkci mail()), odchytávej Nette\InvalidStateException.

vosy
Člen | 532
+
0
-

bude to fungovat i na localhostu???

romiix.org
Člen | 343
+
0
-

Nenapadá mi žiadny dôvod prečo by nemalo.

vosy
Člen | 532
+
0
-

ja jen ze mam

try {

    $message = new Message;
    $message->setFrom("from@mail.sk")
            ->addTo('vosy@vosy.cz')
            ->setSubject("Predmet")
            ->setHTMLBody("<b>Hello world!</b>")
            ->send();

} catch (\Nette\InvalidStateException $e) {
    $presenter->flashMessage("Odoslanie mailu zlyhalo", "warning");
}

kod probehne vporadku ale email neprijde, nemusi byt neco nastavene na localu???

vvoody
Člen | 910
+
0
-

Riešiš to či bol mail odoslaný a sťažuješ si na to že mail nebol doručený čo sú dve odlišné veci. Radšej použi nejaký smtp server aby boli tvoje maily vierohodnejšie.

romiix.org
Člen | 343
+
0
-

Je veľmi pravdepodobné, že mail skončil v spame.

vosy
Člen | 532
+
0
-

ne, ve spamu nic neni zmenil jsem an smtp:

try
            {
                $mailer = new \Nette\Mail\SmtpMailer(array(
                        'host' => \Glb::$MAIL_HOST,
                        'username' => \Glb::$MAIL_USER,
                        'password' => \Glb::$MAIL_PASS,
                        'secure' => 'ssl',
                ));



                $mail = new Message;
                $mail->setFrom(\Glb::$MAIL_FROM )
                    ->addTo(\Glb::$MAIL_TO)
                    ->setSubject('Order Confirmation')
                    ->setBody("Hello, Your order has been accepted.");

                $mail->setMailer($mailer);

            } catch (\Nette\InvalidStateException $e)
            {
                $presenter->flashMessage("Odoslanie mailu zlyhalo", "warning");
            }


self::$MAIL_FROM = '*****';

            self::$MAIL_TO = 'vosy@vosy.cz';

            self::$MAIL_HOST = 'smtp.gmail.com';
            self::$MAIL_USER = '****';
            self::$MAIL_PASS = '****';

zadna chyba nic, script se provede, ale na mail nic neprislo

romiix.org
Člen | 343
+
0
-

Ak sa nemýlim Nette\Mail\SmtpMailer vyhadzuje výnimku Nette\Mail\SmtpException a nie Nette\InvalidStateException.

Mail prijímateľa 100% exituje? Skús mail poslať viacerým prijímateľom (na rôznych serveroch) naraz. Tvoj server vosy.cz možno identifikuje mail ako SPAM (aj keď na to nevidím dôvod ak ide o gmail SMTP). Prípadne odstráň try-catch blok, možno máš niečo s flash správičkami.

Viac mi toho nenapadá.

vosy
Člen | 532
+
0
-

emaily existujou, jsou na gmailu, ve spamu nic neni ani v odeslane poste.
cely blok TRY se provede a blok catch ne e :(

vosy
Člen | 532
+
0
-
try
            {
                $mailer = new \Nette\Mail\SmtpMailer(array(
                        'host' => \Glb::$MAIL_HOST,
                        'username' => \Glb::$MAIL_USER,
                        'password' => \Glb::$MAIL_PASS,
                        'secure' => 'ssl',
                ));



                $mail = new Message;
                $mail->setFrom(\Glb::$MAIL_FROM )
                    ->addTo(\Glb::$MAIL_TO)
                    ->setSubject('Order Confirmation')
                    ->setBody("Hello, Your order has been accepted.");

                $mail->setMailer($mailer);

                $presenter->flashMessage("OK", "warning");

            } catch (\Nette\Mail\SmtpException $e)
            {
                $presenter->flashMessage("Odoslanie mailu zlyhalo", "warning");

            }

zobrazi se FlashMessage „OK“

romiix.org
Člen | 343
+
0
-

Nechýba ti tam náhodou

$mail->send();

?

vosy
Člen | 532
+
0
-

Jsem fakt debil, dekuji :(

romiix.org
Člen | 343
+
0
-

Tiež som si to mohol všimnúť na ukážke s pred troch hodín :)

vosy
Člen | 532
+
0
-

mno to je tak kdyz clovek dela pul dne jednu vec a uz proste spoustu veci prehlidne, dekuji jeste jednou.