Results 1 to 10 of 10

Thread: Wanneer is een email "succesvol" verstuurd

  1. #1

    Wanneer is een email "succesvol" verstuurd

    Hallo hallo,

    Wanneer beschouw je een email als succesvol verstuurd en wanneer als niet succesvol? En hoe vang ik dit af in combinatie met Indy?

    p.s. Ik ben mij ervan bewust dat er geen harde garanties zijn dat een mail is aangekomen, maar ik ben op zoek naar een acceptabele softe regel.

    Bij voorbaat dank!

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Als je geen exceptie krijgt tijdens verzenden ? :-)

  3. #3
    Ben je serieus? Het klinkt namelijk wel grappig

  4. #4
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Quote Originally Posted by luigi View Post
    Het klinkt namelijk wel grappig
    En toch is het minder grappig dan het lijkt: Indy gebruikt excepties om de program flow, afhankelijk van
    de status, te beïnvloeden (ik heb zo mijn eigen gedachten hierover, anderen vinden het weer wel een
    valide oplossing).

    Wat je eigenlijk moet doen (in pseudo-code, want het is alweer even geleden voor me) is:
    Delphi Code:
    1. begin
    2.   Msg := MaakEnVulIdMessageMetData;
    3.   try
    4.     try
    5.       IdSMTP.Connect;
    6.       IdSMTP.Send(Msg);
    7.       Result := IdSMTP.LastCmdResult = 250; // bericht 250 betekent dat verzenden gelukt is.
    8.     except
    9.       Result := False;
    10.     end;
    11.   finally
    12.     Msg.Free;
    13.   end;
    14.  
    15.   if Result then
    16.     ShowMessage('Verzenden gelukt')
    17.   else
    18.     ShowMessage('Verzenden mislukt');
    19. end;
    TMemoryLeak.Create(Nil);

  5. #5
    Dank je wel het is duidelijk!

    Indy gebruikt excepties om de program flow, afhankelijk van
    de status, te beïnvloeden (ik heb zo mijn eigen gedachten hierover, anderen vinden het weer wel een
    valide oplossing).
    Wat zijn jouw gedachten hierover? Vindt je het misbruik van exceptions?

  6. #6
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Klopt helemaal wat Marco en Peter zeggen. Toch blijft het een dubieus iets.
    Zelf sturen wij veel mails naar Nederland en buitenland. In de maillog zie ik dan staan dat deze succesvol is verstuurd. Ik geef een leesbevestiging mee en stuur een kopie naar mijn eigen mailadres. En toch zijn er buitenlandse klanten, die zeggen dat ze niets hebben ontvangen.

    Het is een geweldig iets, die bijlages sturen. Het heeft ons een hoop papier en postzegels gescheeld maar het geeft een ander kopzorgen dat het niet altijd aankomt. En dan moet je de klant geloven, ondanks dat je een kopie naar jezelf stuurt.
    Delphi is great. Lazarus is more powerfull

  7. #7
    Toch nog een paar vragen over IdSMTP en response codes.

    1) Zijn er naast status code 250 nog andere codes die succes of een mogelijk succes aanduiden? Zo zag ik bijvoorbeeld:

    200: nonstandard success response, see rfc876
    251: User not local; will forward to <forward-path>
    252: Cannot VRFY user, but will accept message and attempt delivery

    2) Het lijkt erop alsof het event OnFailedRecipient niet doet wat het moet doen. Ik heb de onderstaande code met een niet bestaand email adres, maar het event wordt niet getriggerd. Krijg wel een onbestelbaar email van de provider.

    Code:
    procedure TForm1.IdSMTPFailedRecipient(Sender: TObject; const AAddress, ACode, AText: string; var VContinue: Boolean);
    begin
      mmo.Lines.Add('Recipient Failed: email address' + AAddress + 'Status Code + Text:  ' + AText + '--' + ACode);
    end;
    3) Hoe kan het dat ik toch een statuscode krijg van 250 als één recipient niet bestaat?

    En toch zijn er buitenlandse klanten, die zeggen dat ze niets hebben ontvangen.
    Ik ken het probleem. Toevallig gaat het negen van de tien keer om een factuur Het is eigenlijk vreemd dat er nog niet echt een alternatief is voor email.

  8. #8
    1) Eigenlijk zou alleen bij 250 geen melding hoeven te geven. Al het andere in de 200 zou bijzonder zijn (en melding naar de gebruiker kunnen geven). Alles anders dan 2xx zou een foutmelding zijn.
    https://www.greenend.org.uk/rjk/tech/smtpreplies.html
    http://www.serversmtp.com/en/smtp-error
    https://www.iana.org/assignments/smt...us-codes.xhtml

    2) Welke smtp server gebruik je? Dit hangt af van de instellingen van de smtp server die je gebruikt. Het kan zijn dat die server gewoon alle adressen accepteert en de mail pas gebounced wordt bij afleveren.

    Bijvoorbeeld een mailtje naar info@ditadresbestaatzekerwetennniet.nl via mijn eigen Linux smtp-server wordt wel geaccepteerd omdat die hem pas "later" aan smtp.ziggo.nl aanbiedt. Als ik direct de smtp.ziggo.nl in mijn mail-programma gebruik dan krijg ik wel direct een foutmelding.

    3) idem.

    Quote Originally Posted by luigi View Post
    Het is eigenlijk vreemd dat er nog niet echt een alternatief is voor email.
    Die is er natuurlijk wel.
    Snailmail...

    Of de klant de factuur bij jou online op laten halen.

  9. #9
    Welke smtp server gebruik je?
    Om te testen even die van Ziggo.

    Snailmail...
    Die moest ik ff opzoeken

    Begrijp ik het goed dat die statuscode van 250 dus ook niet alles zegt?

  10. #10
    Bij de smtp.ziggo.nl zou je wel direct een foutmelding terug moeten krijgen bij een niet bestaand e-mail adres (zoals ik kreeg in mijn e-mail client i.c.m. smtp.ziggo.nl en info@ditadresbestaatzekerwetennniet.nl)

    Nee, een statuscode 250 wil nog niet alles zeggen.
    Het kan ook zijn dat de mail-server waar op afgeleverd wordt gewoon alles accepteert en later terug stuurt of gewoon in de grote rommelpot stopt.

    It is echter wel één van de meest zekere code dat het goed afgeleverd zou moeten worden.
    Maar eigenlijk dien je dus ook altijd de bounces te analyseren.

    Meest zekere is zelf de mail op de mail-server van de ontvanger af te leveren (op te zoeken via het MX-record) maar dat wordt dus door veel providers niet toegestaan (uitgaande poort 25 staat meestal restricted tot hun eigen smtp-server). Ook dat wil nog niet alles zeggen maar dan weet je wel zeker dat je direct met de mail-server van de ontvanger te maken hebt.

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
  •