Odeslání Emailu na Email, který se zadal ve formuláři

_jeniiik_
Člen | 17
+
0
-

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

Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:

  1. poslat to tak jak máš (budeš jako další příjemce)
  2. Poslat v kopii (budeš prostě v kopii)
  3. 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
+
0
-

Polki napsal(a):

Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:

  1. poslat to tak jak máš (budeš jako další příjemce)
  2. Poslat v kopii (budeš prostě v kopii)
  3. 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
+
0
-

_jeniiik_ napsal(a):

Polki napsal(a):

Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:

  1. poslat to tak jak máš (budeš jako další příjemce)
  2. Poslat v kopii (budeš prostě v kopii)
  3. 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
+
0
-

Marek Znojil napsal(a):

_jeniiik_ napsal(a):

Polki napsal(a):

Pokud mají být obsahy E-mailů stejné, tak máš 3 možnosti:

  1. poslat to tak jak máš (budeš jako další příjemce)
  2. Poslat v kopii (budeš prostě v kopii)
  3. 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
+
+3
-

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

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

Víš že místo 'email' má do addTo('email') přijít skutečná emailová adresa, že?

_jeniiik_
Člen | 17
+
0
-

Marek Bartoš napsal(a):

Víš že místo 'email' má do addTo('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í.

nightfish
Člen | 519
+
+1
-

_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?

_jeniiik_
Člen | 17
+
0
-

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? :-)

Mysteria
Člen | 797
+
0
-

Nepřijde, proč? ->addTo určuje komu se email pošle, a ->setHtmlBody co v něm bude.

Polki
Člen | 553
+
0
-

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

_jeniiik_ napsal(a):

Marek Bartoš napsal(a):

Víš že místo 'email' má do addTo('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.