Použití VB.NET pro obchodování – zasílání e-mailů

Při obchodování se nevyhnete tomu, abyste čas od času nepotřebovali zaslat nějakou zprávu. Ať už jde nějakou sestavu, report, nebo častěji hlášení o případných problémech či selháních. K tomu může sloužit SMS, alert ve webovém rozhraní nebo třeba e-mail. Poštovní zpráva je nejčastější. V dnešním díle seriálu o VB.NET a burze se tedy podíváme na odesílání e-mailů.

Základy

Zatímco s příjmem e-mailů je to docela složité, protože potřebujeme nějaký program, který by data četl (poštovní klient, jako je například Outlook), tak s odesíláním je to docela jednoduché, protože potřebujeme “pouze” server, který by poštu odeslal. Ten budeme typicky mít u svého poskytovatele připojení nebo poskytovatele webhostingu. Jde tedy jen o to, jak by měla aplikace ve VB.NET s poštovním serverem komunikovat.

Naštěstí toto je ve VB.NET velice dobře vyřešené. Pokud zvolíme nejčastější způsob přenosu zpráv, tedy SMTP server, bude postup následující:

Code Snippet
    Dim Message As MailMessage = New MailMessage()
    Message.From = New MailAddress("agent@winpes.cz")
    Message.To.Add(New MailAddress("petr@xzajic.cz"))
    Message.Subject = "Předmět zprávy"
    Message.Body = "Tělo zprávy"

    Dim client As SmtpClient = New SmtpClient("smtp.nekde.cz")

    Dim SmtpUser As New System.Net.NetworkCredential()
    SmtpUser.UserName = "user name" 'v reále pravé jméno k SMTP serveru
    SmtpUser.Password = "password" ' v reále pravé heslo k SMTP serveru

    client.UseDefaultCredentials = False
    client.Credentials = SmtpUser
    client.Timeout = 5000 'pet vterin
    client.Send(Message)

Vysvětlení je zhruba takové:

  1. Sestavíme zprávu (Message)
  2. Vytvoříme SMTP klienta (client)
  3. Vytvoříme jméno a heslo pro přihlášení (SmtpUser)
  4. Zprávu odešleme (send)

Kde je úskalí

V reálném životě mohou nastat nejméně dva problémy. První spočívá v tom, že při neexistenci nebo nedostupnosti serveru aplikace čeká po zvolený timeout (v našem případě 5 vteřin) než něco provede. Při obchodování těch 5 vteřin může docela vadit. Když jich posíláte deset, už to dělá skoro minutu. Řeší se to nejčastěji pomocí vláken, kde jedno vlákno programu odesílá e-maily, zatímco jiné vlákno obchoduje.

Druhá věc spočívá v tom, že e-mail zkrátka nemusí dojít. Ať už je problém ve SPAMovém filtru nebo v poštovním klientovi, pokud posíláme e-mail s nějakou naléhavou věcí (“aplikace selhala”), zpráva se k nám nemusí dostat včas. Zde bych doporučoval kombinovat poštovní zprávy se SMS zprávami. Na druhou stranu, pokud nedojde e-mail s denními výsledky, svět se asi nezboří.

Ostatní články tohoto seriálu

  1. Použití VB.NET pro obchodování – zasílání e-mailů (25.2.2015)
  2. VB.NET, burza a Linux–není to šílené? (30.1.2015)
  3. Použití VB.NET pro obchodování na burze–10. díl (16.1.2015)
  4. Použití VB.NET pro obchodování na burze–9. díl (2.1.2015)
  5. Použití VB.NET pro obchodování na burze–8. díl (14.12.2014)
  6. Použití VB.NET pro obchodování na burze–7. díl (3.11.2014)
  7. Použití VB.NET pro obchodování na burze–6. díl (27.10.2014)
  8. VB.NET a burza – REALTIME data z Google–5. díl (20.10.2014)
  9. Použití VB.NET pro obchodování na burze–4. díl (13.10.2014)
  10. Použití VB.NET pro obchodování na burze–3. díl (6.10.2014)
  11. Použití VB.NET pro obchodování na burze - 2. díl (29.9.2014)
  12. Použití VB.NET pro obchodování na burze–1. díl (22.9.2014)
Příspěvek byl publikován v rubrice Nezařazené. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.