Odeslání Emailu na Email, který se zadal ve formuláři
- _jeniiik_
- Člen | 17
Zdravím vás, mám na Vás dotaz ohledně posílání Emailů.
Když se odešle formulář, tak příjde Email na mojí adresu a chci
zařídit, aby přišel potvrzovací Email uživateli, který zadával Email ve
formuláři, jak by se toto dalo udělat?
Děkuji moc
Dosavadní kód:
$form->onSuccess[] = function (Form $form, ArrayHash $values): void {
try {
$this->mailer->send(
(new Message)
->addTo('email na který příjde vše ohledně formuláře')
->addTo('email který příjde zákaznikov, pouze s poděkováním')
->setSubject('Objednávkový formulář')
->setHtmlBody(
'<p>Jméno: ' . $values->user . '</p>'
. '<p>Ulice a číslo popisné: ' . $values->address . '</p>'
. '<p>Město: ' . $values->city . '</p>'
. '<p>PSČ: ' . $values->psc . '</p>'
. '<p>Telefon: ' . $values->phone . '</p>'
. '<p>Mail: ' . $values->email . '</p>'
. '<p>Kód pro zvýhodnění: ' . $values->coupon . '</p>'
. '<p>Produkt: ' . $values->product . '</p>'
. '<p>Typ platby: ' . $values->payment . '</p>'
),
);
} catch (\Exception $e) {
Debugger::log($e);
}
$this->redirect('Homepage:');
};
Editoval _jeniiik_ (6. 11. 2021 19:37)
- Polki
- Člen | 553
Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:
- poslat to tak jak máš (budeš jako další příjemce)
- Poslat v kopii (budeš prostě v kopii)
- Poslat ve skryté kopii (mail bude poslán primárně na adresu uživatele a ty budeš ve skryté kopii)
Pokud má být obsah jiný, tak prostě pošli 2 maily.
Editoval Polki (6. 11. 2021 22:14)
- _jeniiik_
- Člen | 17
Polki napsal(a):
Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:
- poslat to tak jak máš (budeš jako další příjemce)
- Poslat v kopii (budeš prostě v kopii)
- Poslat ve skryté kopii (mail bude poslán primárně na adresu uživatele a ty budeš ve skryté kopii)
Pokud má být obsah jiný, tak prostě pošli 2 maily.
Já ale nechci mít stejný obsah na tom 2. emailu, tam má přijít
zákazníkovi poděkovaní za objednávku.
Na tom 1. emailu budu mít celou kopii formuláře, to je OK, ale v tom
druhém chci, aby uživatel, který vyplnil formulář, dostal
poděkování.
- Marek Znojil
- Člen | 90
_jeniiik_ napsal(a):
Polki napsal(a):
Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:
- poslat to tak jak máš (budeš jako další příjemce)
- Poslat v kopii (budeš prostě v kopii)
- Poslat ve skryté kopii (mail bude poslán primárně na adresu uživatele a ty budeš ve skryté kopii)
Pokud má být obsah jiný, tak prostě pošli 2 maily.
Já ale nechci mít stejný obsah na tom 2. emailu, tam má přijít zákazníkovi poděkovaní za objednávku.
Na tom 1. emailu budu mít celou kopii formuláře, to je OK, ale v tom druhém chci, aby uživatel, který vyplnil formulář, dostal poděkování.
Tak v tomto případě pošli 2 maily, jak psal Polki.
- _jeniiik_
- Člen | 17
Marek Znojil napsal(a):
_jeniiik_ napsal(a):
Polki napsal(a):
Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:
- poslat to tak jak máš (budeš jako další příjemce)
- Poslat v kopii (budeš prostě v kopii)
- Poslat ve skryté kopii (mail bude poslán primárně na adresu uživatele a ty budeš ve skryté kopii)
Pokud má být obsah jiný, tak prostě pošli 2 maily.
Já ale nechci mít stejný obsah na tom 2. emailu, tam má přijít zákazníkovi poděkovaní za objednávku.
Na tom 1. emailu budu mít celou kopii formuláře, to je OK, ale v tom druhém chci, aby uživatel, který vyplnil formulář, dostal poděkování.Tak v tomto případě pošli 2 maily, jak psal Polki.
Jak to mám formátovat?
->addTo("Děkujeme Vám za objednávku" -> email)
?
Nevím, jak to napsat.
Editoval _jeniiik_ (7. 11. 2021 10:40)
- Marek Bartoš
- Nette Blogger | 1280
Nevím, jak to napsat.
$this->mailer->send(
(new Message)
->addTo('email1')
->setSubject('Objednávkový formulář')
->setHtmlBody(
'obsah1'
),
);
$this->mailer->send(
(new Message)
->addTo('email2')
->setSubject('Objednávkový formulář')
->setHtmlBody(
'obsah2'
),
);
- _jeniiik_
- Člen | 17
Marek Bartoš napsal(a):
Nevím, jak to napsat.
$this->mailer->send( (new Message) ->addTo('email1') ->setSubject('Objednávkový formulář') ->setHtmlBody( 'obsah1' ), ); $this->mailer->send( (new Message) ->addTo('email2') ->setSubject('Objednávkový formulář') ->setHtmlBody( 'obsah2' ), );
Děkuji, zkoušel jsem, ale stále nic, možná to mám špatně dosazené, zkoušel jsem email aji ‚email‘.
$form->onSuccess[] = function (Form $form, ArrayHash $values): void {
try {
$this->mailer->send(
(new Message)
->addTo('email')
->setSubject('Objednávkový formulář na splátky')
->setHtmlBody(
'<p>Děkujeme za Vaši účast v projektu. <br>Budeme Vás kontaktovat co nejdříve abychom vyřídili Vaše požadavky.</p>'
),
);
} catch (\Exception $e) {
Debugger::log($e);
}
$this->redirect('Order:thankYou');
};
Editoval _jeniiik_ (7. 11. 2021 16:52)
- Marek Bartoš
- Nette Blogger | 1280
Víš že místo 'email'
má do addTo('email')
přijít skutečná emailová adresa, že?
- _jeniiik_
- Člen | 17
Marek Bartoš napsal(a):
Víš že místo
'email'
má doaddTo('email')
přijít skutečná emailová adresa, že?
Ano vím, chci aby tam byl email, který zadá uživatel do formuláře,
proto tam dávám email, protože tak mám pojmenovaný input ve forms.
(n:name=„email“)
A ten Email bude pokaždé jiný, nemůžu tam dát jeden konkrétní.
- _jeniiik_
- Člen | 17
nightfish napsal(a):
_jeniiik_ napsal(a):
Ano vím, chci aby tam byl email, který zadá uživatel do formuláře, proto tam dávám email, protože tak mám pojmenovaný input ve forms. (n:name=„email“)Takže místo
addTo('email')
spíšaddTo($values->email)
, ne?
To jim ale příjde výpis celého formuláře, místo vlastní děkovné zprávy ne? :-)
- Polki
- Člen | 553
@_jeniiik_ Než začneš s Nette, doporučuji nejdříve se naučit
programování jako takové.
Super kurzy má třeba Yablko jako
webrebel.
- Marek Bartoš
- Nette Blogger | 1280
_jeniiik_ napsal(a):
Marek Bartoš napsal(a):
Víš že místo
'email'
má doaddTo('email')
přijít skutečná emailová adresa, že?Ano vím, chci aby tam byl email, který zadá uživatel do formuláře, proto tam dávám email, protože tak mám pojmenovaný input ve forms. (n:name=„email“)
A ten Email bude pokaždé jiný, nemůžu tam dát jeden konkrétní.
Vždyť v html co sestavuješ už předáváš odeslanou hodnotu pro
$values->email
, proč by ses odkazoval na název fieldu ve
formuláři? Chápu že v latte je to trochu magičtější a odkazuješ se jen
na název a ne na proměnnou, ale Message přece můžeš vytvořit i jinde,
bez odeslání nějakého formuláře. O formuláři Message nic neví a
hodnota, kterou v addTo() předáš se bere jako emailová adresa, na kterou se
email má odeslat.