Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
kokosak
Člen
Avatar
kokosak:28.9.2019 15:43

Ahoj,

Rád bych napsal backend proces, kterým pošle návštěvník stránky zprávu(text) na jeden konkrétní mail po odeslání formuláře. Protože se to chci naučit nechci používat externí služby. Protože je možností řešení k dispozici spousta, poraďte mi prosím které technologie by jste použili. Nepředpokládám vysoký trafic ani žádné scifi. Malá firma chce dostávat textový řetězec odeslaný z formuláře webové stránky na jeden konkrétní mail.
Děkuji.

Zkusil jsem:

Chci docílit: Čeho se snažíš dosáhnout?
seznámit se s SMTP a časem třeba ukládat data do nějaké mezi databáze, ze které se budou dynamicky odesílat například podle data, které si vybere uživatel (tzn. chci aby mi přišel mail s tímto textem třeba za 10 dní)

 
Odpovědět
28.9.2019 15:43
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na kokosak
Jaroslav Smrž:28.9.2019 16:37

Nespecifikoval jsi, který jazyk požaduješ. V php k tomu slouží třeba:

mb_send_mail($_POST['message']);

V ASP.NET doporučuji použít knihovnu MailKit postavený na MimeKit.Příklad použití:

public IActionResult Index(ContactViewModel contactViewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var message = new MimeMessage();
                    message.To.Add(new MailboxAddress("Kontaktní formulář", "[email protected]"));
                    message.From.Add(new MailboxAddress("E-mail From", "[email protected]"));
                    message.Subject = contactViewModel.Subject;
                    message.Body = new TextPart(TextFormat.Html)
                    {
                        Text = contactViewModel.Message + " Zprávu zaslal: " + contactViewModel.Name + " E-mail: " + contactViewModel.Email
                    };

                    using (var emailClient = new SmtpClient())
                    {
                        emailClient.Connect("smtp.server.com", 587, false);
                        emailClient.Authenticate("[email protected]", "heslo");
                        emailClient.Send(message);
                        emailClient.Disconnect(true);
                    }
                }
                catch (Exception ex)
                {
                    ModelState.Clear();
                    ViewBag.Message = $" Ooops! Někde máme problém... {ex.Message}";
                }
            }
            return View("EmailSendView");
        }
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
28.9.2019 16:37
/* Life runs on code */
Avatar
kokosak
Člen
Avatar
kokosak:28.9.2019 20:19

jazyk nemám jasně daný, dělal jsem převážně frontend a teď se snažím postavit něco na server side. zatím zvažuji různé výhody a nevýhody a zajímal mě názor komunity. PHP je fain ale je to náročnější než ten jeden řádek který jsi napsal. C# mi přijde na jednoduchou funkci kterou jsem nastínil příliš složité, hlavně se mi nehodí ke konceptu, zatím jsem nedělal nic s C# na webovce, neříkám že to není v pohodě. v podstatě asi PHP nebo nějaký server-side JS, Python ale o mi už taky přijde trochu mimo. Spíš mě zajímalo jak byste to řešili vy osobně, hodně z vás má větší přehled a zná lépe současné technologie, často jsem tu našel zajímavé názory. Nechci abyste mi sem hazeli kody na copypaste... ale kazdopadně diky za nazor.

Editováno 28.9.2019 20:20
 
Nahoru Odpovědět
28.9.2019 20:19
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na kokosak
Jaroslav Smrž:28.9.2019 20:50

Není za co. V tom případě, co popisuješ je ještě možnost Node.js, což je serverový framework JavaScriptu, ale v tom nedělám, takže s tím příliš nepomohu. Jinak v tom php kódu jsem pouze vypsal tu funkci, která email odešle. Musíš ještě definovat hlavičku emailu, kódování, kam to poslat a hlavně to ošetřit. V tom je php bez použití nějakého frameworku dost krkolomné. Například když bys celý web udělal v .NET Core, tak si oproti PHP ušetříš spousty času.

Nahoru Odpovědět
28.9.2019 20:50
/* Life runs on code */
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.