November Black Friday C# týden
BlackFriday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C#
Avatar
kokosak
Člen
Avatar
kokosak:28. září 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. září 15:43
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na kokosak
Jaroslav Smrž:28. září 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í
+1 bodů
Řešení problému
Nahoru Odpovědět
28. září 16:37
/* Life runs on code */
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
kokosak
Člen
Avatar
kokosak:28. září 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. září 20:20
 
Nahoru Odpovědět
28. září 20:19
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na kokosak
Jaroslav Smrž:28. září 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. září 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.