Page 1 of 2 1 2 LastLast
Results 1 to 15 of 19

Thread: Ontvangen van een mailbericht

  1. #1
    Senior Member ErikB's Avatar
    Join Date
    Aug 2010
    Location
    Biddinghuizen
    Posts
    466

    Ontvangen van een mailbericht

    Beste,

    We hebben op een server een applicatie lopen (isapi dll, Intraweb, Delphi 10.1 Berlin met de daarbij geleverde Indy componenten).
    Bij het inloggen door een consument wordt, om in te loggen met het email-adres een pincode verstuurd aan het mail-adres.

    een van onze gebruikers is nu bij hun op kantoor aan het testen. Ze gebruiken hiervoor verschillende mail-adressen en versturen die via het interne netwerk, maar ook hebben ze getest met de 4G verbinding van de telefoon. In veel gevallen komt de pincode niet bij hun binnen, bij een gmail account pas na 3 uur.

    Gebruik ik diezelfde mailadressen hier op mijn computer, dan is de pincode binnen een aantal ( 5 tot 10 ) ontvangen bij hun.

    De vraag dus, wat de oorzaak zou kunnen zijn.

    De volgende code gebruik ik:

    Code:
    function SendMail(const FromName, FromAddress, ToName, ToAddress, Subject: string; const Boodschap : TStringList):boolean;
    var SMTP : TIdSMTP;
        MSG  : TIdMessage;
        idSASLLogin: TIdSASLLogin;
        idUserPassProvider: TIdUserPassProvider;
    begin
      Result := false;
      MSG := TIdMessage.Create(nil);
      try
        with MSG.Recipients.Add do
        begin
          Name := ToName;
          Address := ToAddress;
        end;
        MSG.From.Name := FromName;  // bedrijfsnaam van de gebruiker
        MSG.From.Address := FromAddress; // emailadres van de gebruiker
        MSG.ReplyTo.EMailAddresses := FromAddress; // emailadres van de gebruiker
    
        MSG.Body.Assign(Boodschap);
        MSG.Subject := Subject;
        SMTP := TIdSMTP.Create(nil);
        try
          SMTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(SMTP);
          SMTP.UseTLS := utNoTLSSupport;// utUseExplicitTLS;
          TIdSSLIOHandlerSocketOpenSSL(SMTP.IOHandler).SSLOptions.Method := sslvSSLv3;
    
          SMTP.Host := 'retail.smtp.com';
          SMTP.Port := 2525;
    
          idSASLLogin := TIdSASLLogin.Create(SMTP);
          idUserPassProvider := TIdUserPassProvider.Create(idSASLLogin);
    
          idSASLLogin.UserPassProvider := idUserPassProvider;
          idUserPassProvider.Username := 'mijn gebruikersnaam';
          idUserPassProvider.Password := 'mijn toegangscode';
          SMTP.AuthType := satSASL;
          SMTP.SASLMechanisms.Add.SASL := idSASLLogin;
          SMTP.Connect;
          if SMTP.Connected then
          begin
            try
              if SMTP.Authenticate then
              begin
                SMTP.Send(MSG);
                Result := true;
              end
              else
              begin
                LogMelding('no authentication');
              end;
           finally
              SMTP.Disconnect;
            end;
          end
          else
          begin
            LogMelding('not connected');
          end;
        finally
          SMTP.Free;
        end;
      finally
        MSG.Free
      end;
    end;
    Erik

  2. #2
    Greylisting of andere mailhub-beveiligingen.

    Heb je de headers van zo'n vertraagde mail?
    Daarin kun je meestal aan de received headers wel zien welke mailhub voor vertraging zorgt.

    Helemaal niet binnenkomen is natuurlijk raar. Komen ze ook niet in de spamboxen terecht?

  3. #3
    Senior Member ErikB's Avatar
    Join Date
    Aug 2010
    Location
    Biddinghuizen
    Posts
    466
    Hallo Rik,

    ik zal kijken of ik die headers te pakken kan krijgen.

    Erik
    Erik

  4. #4
    ik zou op een professionele smtp partij overstappen voor zoiets. Mail versturen van eigen servers wordt steeds moeilijker.

    Er zijn verschillende partijen in de markt die dit doen, sommige leveren een dedicated smtp server die jij kunt gebruiken, anderen bieden een api die hetzelfde doet. Beiden zullen je ook terugkoppeling geven, bv als je mail niet aan voorwaarden voldoet.

  5. #5
    Quote Originally Posted by Benno View Post
    ik zou op een professionele smtp partij overstappen voor zoiets.
    Volgens mij is {retail.}smtp.com toch echt wel een professionele partij
    https://www.smtp.com/

    (En ja, die gebruiken ook poort 2525 daarvoor)

  6. #6
    Volgens mij is {retail.}smtp.com toch echt wel een professionele partij
    https://www.smtp.com/
    Klopt, die had ik ff gemist in zijn code voorbeeld. smtp.com is een prima partij hiervoor.

    Enige waar ik me nog iets bij voor kan stellen is dat dingen als spf niet goed staan voor het domein. Maar dan is het vreemd dat ze wel meteen binnenkomen op de test gmail accounts bij Erik op kantoor en niet bij de klanten op 4G, aangenomen dat Erik dezelfde klantaccounts gebruikt.

  7. #7
    een van onze gebruikers is nu bij hun op kantoor aan het testen. Ze gebruiken hiervoor verschillende mail-adressen en versturen die via het interne netwerk, maar ook hebben ze getest met de 4G verbinding van de telefoon. In veel gevallen komt de pincode niet bij hun binnen, bij een gmail account pas na 3 uur.

    Gebruik ik diezelfde mailadressen hier op mijn computer, dan is de pincode binnen een aantal ( 5 tot 10 ) ontvangen bij hun.
    Erik ik snap je uitleg niet helemaal.

    Jouw server verstuurt de code toch naar een email adres van de gebruiker? Wat moeten zij dan versturen?

  8. #8
    Senior Member ErikB's Avatar
    Join Date
    Aug 2010
    Location
    Biddinghuizen
    Posts
    466
    Benno: het gaat als volgt:

    de consument start de applicatie ( is een DLL in een URL, bijvoorbeeld https://www.onzeserver.nl/deployment...dll/?ID=123456 )
    het id zorgt ervoor dat het programma de juiste database erbij opent (het programma is bedoeld om online reserveringen te kunnen doen door consumenten), elke gebruiker heeft zijn eigen database op onze server.

    als het programma geopend is, wordt een email-adres gevraagd, dat is het email-adres van consument. Is het een bestaand email-adres in de gebruikersdatabase, dan kan de consument verder, zo niet dan wordt een pincode verstuurd naar het email-adres van de consument, met de code zoals in mijn oorspronkelijke vraag.
    Hierbij wordt bij
    Code:
    MSG.From.Address := FromAddress; // emailadres van de gebruiker
    MSG.ReplyTo.EMailAddresses := FromAddress; // emailadres van de gebruiker
    het emailadres gebruikt van onze gebruiker.
    het programma vraagt dan om de pincode. als de consument deze correct heeft ontvangen in zijn mailbox dan kan de consument deze invoeren in het programma en zo verder gaan met reserveren.

    ik hoop dat het zo een beetje duidelijk is
    Erik

  9. #9
    ik denk dat je de mist in gaat met je fromadress en je replyto adres. Die zouden moeten horen bij jouw bedrijf en ingesteld in je dns (spf oa). Doe je dat niet zal veel in de spam box verdwijnen of zelfs niet aankomen.

    Je gebruikt smtp.com als smtp server. Als het goed is heb je in jouw dns van het versturende domein de spf records toegevoegd van smtp.com (bij de goedkope smtp accounts een verwijzing naar een lijst, omdat je geen vaste server krijgt toegewezen).

    Uiteraard kun je dit ook in laten stellen door je klant in hun dns, zodat je vanuit hun domein mail kunt versturen. Maar zonder de juiste config aan de verzendende kant (dns) zal veel niet aankomen.

  10. #10
    Senior Member ErikB's Avatar
    Join Date
    Aug 2010
    Location
    Biddinghuizen
    Posts
    466
    OK, als ik nu het FromAdres laat zoals het is (het mailadres van onze gebruiker), en het ReplyTo adres leeg laat (zodat er geen reply gedaan kan worden op het verzonden pin), zou dat dan al voldoende zijn?
    onze gebruikers zien natuurlijk het liefste dat hun eigen mailadres als afzender staat. Bovendien wordt op diezelfde manier na het bevestigen van de afspraak ook daarvan een mail gestuurd naar de consument.
    Erik

  11. #11
    nee ik denk dat je probleem groter zou worden zonder replyto.

    Wat je zou kunnen proberen is in de from het mail adres zetten van je klant, in de replyto het adres van jou waar alles goed is ingesteld voor verzenden via smtp.com. Je verstuurt de mail dan immers vanuit je eigen correct ingestelde domein.

    Maar mail rules worden (terecht) steeds strakker en je moet aan steeds meer voorwaarden voldoen om mail afgeleverd te krijgen. Daarom zie je ook steeds meer van dit soort oplossingen mail versturen vanaf een voor jou onbekend mail adres.

  12. #12
    Ik denk dat je dan beter spf, dkim en dmarc uit kunt schakelen.

    Spf gebruikt de "envelope from" (niet de "header from") en ik denk niet dat je die zo kan beinvloeden.

    Anders zou je inderdaad voor replyto noreply@onzeserver.nl kunnen proberen. (En niet vergeten de spf goed te zetten e.d.)

  13. #13
    Senior Member ErikB's Avatar
    Join Date
    Aug 2010
    Location
    Biddinghuizen
    Posts
    466
    Dank allen, ik heb voor het Fromadres nu het mailadres van de gebruiker, en bij het replyto nu no-reply@onzeserver.nl (en natuurlijk is "onzeserver" niet de werkelijke naam)
    Dat gaat bij mij hier goed, nu eens zien of het bij onze gebruiker ook goed gaat...
    Erik

  14. #14
    Hi

    Zoals Benno ook aan gaf kun je in de knoei komen met Reply/From address of Sender maar ook ReturnPath
    Het kan helpen om in je header op te nemen.

    ' inserts a auto-submitted header to indicate that
    ' the message was originated by an automatic process, or an automatic
    ' responder, rather than by a human
    oSmtp.AddHeader "auto-submitted", "auto-generated"
    oSmtp.AddHeader('precedent:','bulk'
    );


    Daarnaast gelden er veel regels m.b.t mail en dat verschilt per provider. Ik gebruik zelf de componenten van EmailArchitect.
    Op hun site staat richtlijnen voor bulkmail en die zijn ook gewoon toepasbaar als het niet gaat om bulkmail
    zie hiervoor : https://www.emailarchitect.net/easendmail/sdk/

    Ik heb jouw opzet ook een tijdje gehanteerd maar toch weer snel van af gestapt. Reden hiervoor was voor mij
    de 'onbetrouwbaarheid' van mail. Iedere partij gaat er anders mee om en hanteert andere regels. Zeker gmail en hotmail.

    Ik ben overgestapt naar het gebruik van SMS, en dat is vele malen snellere en betrouwbaarder. Ja het is duurder dan mail
    maar de klant betaald hier gewoon voor en die is er ook blij mee. Volgens mij 0,08 per sms. Zeker wanneer het gaat om reserveringen zou ik er
    zeker van willen zijn dat een klant goed en snel in kan loggen en niet moeten wachten tot er een mail binnen komt.
    Met name gmail en hotmail hebben er nog wel eens een handje van om aardig wat tijd tussen verzenden/ontvangst
    te laten hanteren.

    Greetz Peter

  15. #15
    Senior Member ErikB's Avatar
    Join Date
    Aug 2010
    Location
    Biddinghuizen
    Posts
    466
    Peter,

    Dank voor de uitleg. In ons systeem is het inderdaad ook mogelijk om per sms een bericht te sturen, maar vrijwel iedereen kiest voor mail omdat dat nu eenmaal niets kost.
    Ik snap ook wel dat mail niet altijd even betrouwbaar is, dat leg ik ook uit aan de gebruiker, maar "ons bien zunig"

    Ik ga toch wel even naar jouw component kijken.
    Erik

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •