Toon posts:

[Delphi] NSMTP component in delphi 5

Pagina: 1
Acties:
  • 62 views sinds 30-01-2008

Verwijderd

Topicstarter
Heey,

Delphi 5 heeft een component genaamd NMSMTP waarmee je heel makkelijk e-mails kunt verzenden als je inlogt bij een bepaalde server. Nou is mijn vraag, hoe kun je ervoor zorgen dat als het mislukt om een mail te verzenden via een server (bv home) dat je disconnect en via een andere server probeert die mail te verzenden ?

ik heb van alles geprobeerd, maar het wil me niet lukken, ik kom niet verder dan 2 servers 8)7

TNX

Verwijderd

Topicstarter
WoOW lkkr veel reply'' s :P

zOO moeilijk kan het tog neit zijn :'(

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Er zal vast wel een manier zijn om op te vragen of een mail verzonden is. Is het dan zo moeilijk om op basis daarvan te disconnecten, een andere server te kiezen en daarmee connecten, en dan nogmaals verzenden? Heb je al eens naar TNMSMTP gezocht in de help?

En topics omhoog schoppen binnen 24 uur wordt hier niet gewaardeerd. Zie ook de forum FAQ. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Verwijderd schreef op dinsdag 18 januari 2005 @ 18:51:Delphi 5 heeft een component genaamd NMSMTP waarmee je heel makkelijk e-mails kunt verzenden als je inlogt bij een bepaalde server. ...
Noot: De Netmaster-componenten zitten vol met bugs. (Tenminste, destijds).
Bij de laatste versie van Delphi worden ze niet meer meegeleverd.
Gebruik liever de Indy-componenten.. Deze zijn vrij compleet en 'gratis'.

Verwijderd

Bovendien: de Indy componenten blocken (werken synchroon), terwijl de Netmaster componenten dat niet doen (werken asynchroon).

Nou kun je zeggen dat niet blocken fijner is omdat je applicatie dan niet `lijkt te hangen'[1], maar blockende componenten programmeren vele malen fijner. Verder is het bij Indy zo dat als een actie niet lukt, er dan een exception gegooid wordt.

De retry logica met TIdSMTP komt er ongeveer zo uit te zien:

Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
hostlist[0] := 'my.server.nl';
hostlist[1] := 'other.server.nl';
// ... meer initialisatie, array initialisatie is natuurlijk niet compleet.

i := 0;
success := false;
while (not success) and (i < Length(hostlist)) do
try
  { Probeer te verzenden naar deze host }
  IdSMTP1.Host := hostlist[i];
  IdSTMP1.Send(mymessage);

  { Zenden is gelukt, stop met de lus }
  success := true;
except
  { Zenden naar deze host is mislukt, probeer de volgende }
  on E : EIdException do 
  begin
    Log(E.Message);
    i := i + 1;
  end; 
end;

if not success then raise Exception.Create('Mailservers uitgeput -- verzenden mislukt!');



[1] Ter remedie heeft Indy daarvoor TAntiFreeze

[ Voor 3% gewijzigd door Verwijderd op 18-01-2005 23:13 ]


  • LangTall
  • Registratie: September 2001
  • Laatst online: 08-10-2025

LangTall

Drinking for Holland @ Le Mans

Via het event 'OnFailure' kan je eea sturen als het verzenden niet lukt. Is dat misschien een optie?

My wife has passed away: http://leuk-is-anders.blogspot.com I don't have a drinking problem. I drink, get drunk, fall down, no problem!


  • Ruben314199
  • Registratie: Juli 2002
  • Laatst online: 06-04-2025
Noot: De Netmaster-componenten zitten vol met bugs. (Tenminste, destijds).
Bij de laatste versie van Delphi worden ze niet meer meegeleverd.
Gebruik liever de Indy-componenten.. Deze zijn vrij compleet en 'gratis'.
Geheel meer eens. NIET GEBRUIKEN die zooi van Netmasters. Er zijn wel updates voor, maar die zijn niet gratis, ook niet voor geregistreerde gebruikers van Delphi 5 zoals ik destijds.
De componenten van Indy zijn daarintegen wel goed en ook rijkelijk voorzien van voorbeelden. Je kunt ze vinden op:
http://www.indyproject.org. Zoals je begrijpt raad ik je ten sterkste aan ten minste op de link te klikken.....

De gaafste watergekoelde pc ter wereld


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:22

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op dinsdag 18 januari 2005 @ 21:16:
WoOW lkkr veel reply'' s :P

zOO moeilijk kan het tog neit zijn :'(
Het "kicken" van je topic topic mag eigenlijk pas na 24 uur. Niet iedereen zit elk uur op GoT dus kan het best eens een dag duren voordat je een reply krijgt.

Daarnaast is het inderdaad zo moeilijk niet. De HELP van Delphi is erg uitgebreid. Selecteer het component, druk op F1 en sta verbaasd :) Of zet je cursor op een classnaam (TObject etc) en druk daar op F1).

Het checken of een mail is verzonden is echt wel uit de help te halen. Daarnaast is je topicstart aan de magere kant. Ik mis wat je zelf al hebt geprobeerd en wat daar niet mee lukte (en op inzet ben je al vaker gewezen!). Zie ook P&W FAQ - De "quickstart"

[ Voor 3% gewijzigd door Creepy op 19-01-2005 09:02 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.