 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Ludo Guest
|
Posted: Wed Apr 28, 2004 8:52 am Post subject: NMSMTP & Abnormal program termination |
|
|
Hi,
I'm using nmsmtp component to send mail with my application. When the
network is up everything is ok, but when the network is down or when the
smtp port is bad my application abort with message "Abnormal program
termination". Somebody can explain to me where is my error ?
thx,
Code of my smtp function :
where recipient, body, from_address, reply_address, subject, file, host
and userid are char [256], and port is a short int ;
TNMSMTP * Message = new TNMSMTP (Application) ;
bool ok = false ;
if (recipient != "")
{
Message->PostMessage->ToAddress->Add (recipient) ;
Message->PostMessage->Body->Add (body) ;
Message->PostMessage->FromAddress = from_address ;
Message->PostMessage->ReplyAddress = reply_address ;
if (subject != "")
Message->PostMessage->Subject = subject ;
else
Message->PostMessage->Subject = "No Subject" ;
Message->PostMessage->ToCarbonCopy->Text = "" ;
Message->PostMessage->ToBlindCarbonCopy->Text = "" ;
if (file != "")
Message->PostMessage->Attachments->Text = file ;
Message->PostMessage->LocalProgram = "My Mailer" ;
Message->PostMessage->Date = "" ;
Message->EncodeType = uuCode ;
ok = true ;
} ;
if (ok && host != "" && userid != "")
{
Message->Host = host ;
Message->UserID = userid ;
if (port > 0 && port != 25)
Message->Port = port ;
Message->Connect () ;
if (Message->Connected)
{
Message->SendMail () ;
Message->Disconnect () ;
} ;
} ;
return ok ;
|
|
| Back to top |
|
 |
Hans Galema Guest
|
Posted: Wed Apr 28, 2004 10:28 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Ludo wrote:
| Quote: | I'm using nmsmtp component to send mail with my application. When the
network is up everything is ok, but when the network is down or when the
smtp port is bad my application abort with message "Abnormal program
termination".
|
The Netmaster's components are considered buggy. And they are sometimes.
But sending mails with TNMSMTP is very good possible. I never saw
my programs killed by them. (Or I have forgotten about it.)
Which version of CBuilder do you use ?
| Quote: | Somebody can explain to me where is my error ?
|
There are several things in your code where things can be altered.
| Quote: | where recipient, body, from_address, reply_address, subject, file, host
and userid are char [256], and port is a short int ;
if (recipient != "")
|
You cannot check a char array to be empty in that way.
Demo:
char recipient [100];
recipient [0] = 0;
if (recipient != "")
{
ShowMessage ( "recipient != """ );
// this message will show.
}
better use:
if ( recipient [0] )
{
// your code
}
| Quote: | if (subject != "")
if (file != "")
if (ok && host != "" && userid != "")
|
All compares that are not ok.
| Quote: | Message->Connect () ;
if (Message->Connected)
|
Now you are going to expect that the Connect()
will return only after a connection is made
or there is an error. Well indeed sometimes
that is possible. But you better move the following
code to the OnConnect event. ( Don't know the exact name)
| Quote: | Message->SendMail () ;
|
Also I would move the Disconnect() call to the Sendmailcomplete
eventhandler (or how is it called ? )
| Quote: | Message->Disconnect () ;
|
Could you try in this way first ?
Hans.
|
|
| Back to top |
|
 |
Ludo Guest
|
Posted: Wed Apr 28, 2004 1:32 pm Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Hans Galema wrote:
| Quote: | Which version of CBuilder do you use ?
|
CBuilder 6 / and none update
| Quote: | if (recipient != "")
You cannot check a char array to be empty in that way.
|
In Reality they are not "char [256]" but of the objects of the type
t_string. t_string is a class that I have defined and who enable me to
make a comparison of chains in this manner. This class functions very
well (and this since more than 10 years . I just wanted to simplify
the explanation. On the other hand, the arguments passed to the object
TNMSMTP are each time, in reality, a variable of this class which
corresponds to a "char [256]".
| Quote: | Message->Connect () ;
if (Message->Connected)
Now you are going to expect that the Connect()
will return only after a connection is made
or there is an error. Well indeed sometimes
that is possible. But you better move the following
code to the OnConnect event. ( Don't know the exact name)
Message->SendMail () ;
|
Ok thus, I made the functions and assigned them with the events of
NMSMTP. Like that:
//------- MY SOURCE :
NMSMTP1 = new TNMSMTP (Application) ;
NMSMTP1->OnConnect = this->MyClassConnect ;
NMSMTP1->OnConnectionFailed = this->MyClassConnectionFailed ;
NMSMTP1->OnConnectionRequired = this->MyClassConnectionRequired ;
NMSMTP1->OnDisconnect = this->MyClassDisconnect ;
NMSMTP1->OnFailure = this->MyClassFailure ;
// NMSMTP1->OnError = this->MyClassError ;
NMSMTP1->OnHostResolved = this->MyClassHostResolved ;
NMSMTP1->OnInvalidHost = this->MyClassInvalidHost ;
NMSMTP1->OnRecipientNotFound = this->MyClassRecipientNotFound ;
NMSMTP1->OnSuccess = this->MyClassSuccess ;
//-------- MY HEADER :
TNMSMTP * NMSMTP1 ;
void __fastcall MyClassConnect(TObject *Sender);
void __fastcall MyClassConnectionFailed(TObject *Sender);
void __fastcall MyClassConnectionRequired(bool &handled);
void __fastcall MyClassDisconnect(TObject *Sender);
void __fastcall MyClassFailure(TObject *Sender);
void __fastcall MyClassHostResolved(TComponent *Sender);
void __fastcall MyClassInvalidHost(bool &handled);
void __fastcall MyClassRecipientNotFound(AnsiString Recipient);
void __fastcall MyClassSuccess(TObject *Sender);
| Quote: |
Also I would move the Disconnect() call to the Sendmailcomplete
eventhandler (or how is it called ? )
|
(it's the OnSuccess event)
I have tested my program like that, when the network is up, everything
is ok and all the good events are called, but when the network is down,
no event is called, even not OnFailure Thus I think it's a winsock
problem with Connect() ... But in the BCB6 example of nmsmtp, when the
network is down, we have a message like "Network is down", thus why I
don't have this message ?.
|
|
| Back to top |
|
 |
Hans Galema Guest
|
Posted: Wed Apr 28, 2004 2:06 pm Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Ludo wrote:
| Quote: | You cannot check a char array to be empty in that way.
In Reality they are not "char [256]".... I just wanted to simplify
the explanation.
|
Well you see: that was not a good idea.
| Quote: | //------- MY SOURCE :
NMSMTP1 = new TNMSMTP (Application) ;
|
The source looks ok. But you could try also:
NMSMTP1 = new TNMSMTP (Application->MainForm) ;
NMSMTP1 = new TNMSMTP (this) ; // if this is on a VCL form.
Is this for a console appliction ? If not why not place a
component at designtime ?
Maybe the TNMSMTP component deletes its Owner at some errors ?
NMSMTP1 = new TNMSMTP (NULL);
but then you have to use a delete NMSMTP; afterwards.
| Quote: | I have tested my program like that, when the network is up, everything
is ok and all the good events are called, but when the network is down,
no event is called, even not OnFailure Thus I think it's a winsock
problem with Connect() ...
|
Please try with a NULL Owner.
| Quote: | But in the BCB6 example of nmsmtp, when the
network is down, we have a message like "Network is down", thus why I
don't have this message ?.
|
Don't know. In which event does this message come ?
Did a test. Disconnected from the network (well I disabled the wireless)
and got an OnInvalidHost event after SendMail(). (bcb3)
What do you mean with "the network is down" ? Is that only
LAN ? Or is there a direct connection to the internet ?
Or is there a router or gateway involved ?
Hans.
|
|
| Back to top |
|
 |
Ludo Guest
|
Posted: Wed Apr 28, 2004 4:23 pm Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Hans Galema wrote:
* in first thanks for your help Hans *
| Quote: | The source looks ok. But you could try also:
NMSMTP1 = new TNMSMTP (Application->MainForm) ;
NMSMTP1 = new TNMSMTP (this) ; // if this is on a VCL form.
Is this for a console appliction ? If not why not place a
component at designtime ?
|
It's not for a console application, but it's (normally) for a not
interactive application (like a Linux Daemon). So now, I work with
Application->MainForm.
| Quote: |
I have tested my program like that, when the network is up, everything
is ok and all the good events are called, but when the network is
down, no event is called, even not OnFailure Thus I think it's a
winsock problem with Connect() ...
Please try with a NULL Owner.
|
I tryed it but it's the same problem.
| Quote: |
But in the BCB6 example of nmsmtp, when the network is down, we have a
message like "Network is down", thus why I don't have this message ?.
Don't know. In which event does this message come ?
Did a test. Disconnected from the network (well I disabled the wireless)
and got an OnInvalidHost event after SendMail(). (bcb3)
|
I agree with you, I have an OnInvalidHost event. But already, I have two
OnInvalidHost events in the continuation, and after events traitment the
program goes out with the famous "Abnormal program termination". When I
am in the BCB6 example, the program has the two OnInvalidHost events in
the continuation, for the first the Debugger shows me an "ESockError"
exception with the message "Host lookup failed" and for the second the
Debugger shows me to exception an "ESockError" with the message "Null
remote address", after, the application shows this message : "Null
Remote Address", but the application does not go out.
Thus, the problem can come by my Exception gestion, but I don't
understand because I have the standard implemetation of WinMain :
//-------- SOURCE CODE
WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
{
int result = 0 ;
try
{
// my application code
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return result;
}
So the application should show me the exception but not go out with an
abnormal program termination !?
| Quote: | What do you mean with "the network is down" ? Is that only
LAN ? Or is there a direct connection to the internet ?
Or is there a router or gateway involved ?
|
I try with a firewall blocking and a disconnection of network cable.
|
|
| Back to top |
|
 |
Hans Galema Guest
|
Posted: Wed Apr 28, 2004 7:52 pm Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Ludo wrote:
| Quote: | I agree with you, I have an OnInvalidHost event. But already, I have two
OnInvalidHost events in the continuation, and after events traitment the
program goes out with the famous "Abnormal program termination".
|
Don't understand why you would have two of these events. In my
application there is only one.
What do you mean with "in the continuation" ? Do you have special code
in the OnInvalidHost eventhandler that could cause a successive
firing ?
| Quote: | When I
am in the BCB6 example, the program has the two OnInvalidHost events in
the continuation, for the first the Debugger shows me an "ESockError"
exception with the message "Host lookup failed" and for the second the
Debugger shows me to exception an "ESockError" with the message "Null
remote address", after, the application shows this message : "Null
Remote Address", but the application does not go out.
|
This is the code from bcb6 smtpmain.cpp (an expired trial version is still
on my hd.)
void __fastcall TFormMain::NMSMTP1InvalidHost(bool &handled)
{
AnsiString NewHost;
if (InputQuery("Invalid Host", "Please Choose another host", NewHost))
{
//ShowMessage(NewHost);
NMSMTP1->Host = NewHost;
handled = true;
}
}
What I don't like in this function is that handled is only set to true
after an InputQuery. Such things can cause troubles.
Better set handled to true in the first statement.
Hans.
|
|
| Back to top |
|
 |
Ludo Guest
|
Posted: Thu Apr 29, 2004 8:10 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Hans Galema wrote:
| Quote: | Ludo wrote:
[...]
Don't understand why you would have two of these events. In my
application there is only one.
|
Me either.
| Quote: |
What do you mean with "in the continuation" ? Do you have special code
|
I mean "successive" (sorry I'm not very good in english ;)
| Quote: | in the OnInvalidHost eventhandler that could cause a successive
firing ?
[...]
This is the code from bcb6 smtpmain.cpp (an expired trial version is still
on my hd.)
void __fastcall TFormMain::NMSMTP1InvalidHost(bool &handled)
{
AnsiString NewHost;
if (InputQuery("Invalid Host", "Please Choose another host", NewHost))
{
//ShowMessage(NewHost);
NMSMTP1->Host = NewHost;
handled = true;
}
}
|
Yes I have the same code. And if you disconnect your network, in first
the program send an OnInvalidHost event and after if you reinsert the
same host and you press enter (on the InputQuery), you have a message
box with "Null Remote Address". And if you use the debugger, you can to
note that after the InputQuery you have two events.
You have not the possibility to stop the program execution (or just the
connection).
| Quote: | What I don't like in this function is that handled is only set to true
after an InputQuery. Such things can cause troubles.
|
Yes of course, but if I can not resolve this problem, I am obliged to
use others objects like "Indy's objects" but they are more complicated.
| Quote: |
Better set handled to true in the first statement.
Hans.
|
|
|
| Back to top |
|
 |
Hans Galema Guest
|
Posted: Thu Apr 29, 2004 8:53 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Ludo wrote:
| Quote: | Yes I have the same code. And if you disconnect your network, in first
the program send an OnInvalidHost event and after if you reinsert the
same host and you press enter (on the InputQuery), you have a message
box with "Null Remote Address". And if you use the debugger, you can to
note that after the InputQuery you have two events.
|
Well why would you do that ? Also there is only one OnIvalidateHost
event. Yes if you restart there will be another, or other errors. What
should it ? That is a whole other problem. Remove that InputQuery
and set handled to true in the first place.
This is the second time that brought a misleading errorreport.
The CBuilder example does bring only one OnInvalidate host event.
Not everybody has that example. So you should habve told that
the second one only came after a new try to connect.
Or post the code of that eventhandler. Now I had to do that.
| Quote: | You have not the possibility to stop the program execution (or just the
connection).
|
Of course: change the code.
| Quote: | What I don't like in this function is that handled is only set to true
after an InputQuery. Such things can cause troubles.
Yes of course, but if I can not resolve this problem, I am obliged to
use others objects like "Indy's objects" but they are more complicated.
Better set handled to true in the first statement.
|
Well did you try that ? Is there a difference ?
Hans.
|
|
| Back to top |
|
 |
Mark Jacobs Guest
|
Posted: Thu Apr 29, 2004 9:05 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
I have had this problem with the NetMaster components since 1998. First you get "Invalid Host" and then
subsequent attempts generate "Null Remote Address". I have never managed to work round this problem. In fact
it became difficult to cleanly exit my e-mail app, after this had happened, since it started generating C
exceptions (Access Violations that cannot be "caught" in a try...catch block) when I tried to close the form.
I got round the latter problem with a try..._except block. Here is the code :-
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCloseQuery(TObject *Sender, bool &CanClose)
{
try
{
try
{
try
{
// Some code to close all connections, possibly causing exceptions galore
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
ShowMessage("C Exception Caught");
}
}
catch (Exception &excp)
{
ShowMessage(excp.Message);
}
}
__finally
{
CanClose=true;
}
}
//---------------------------------------------------------------------------
In all truth, I don't think anyone has ever got round the badly programmed Netmasters components' inability to
cope with connection problems. It seems to stretch deep into their suite in that the same problems exist for
pop3, ping, time, traceroute, finger and ftp components too. Either live with it, or go to the slightly more
complex, but more complete Indy components (you'll have to sign up for the latest versions, but they are still
free).
One thing I have got out of this, is a superb spam-filtering e-mail receiver/sender. This morning I had 645
e-mails (in just 8 hours!!!), and my spam filtering technology I built in to my e-mail app only had me looking
at 5 of them, disposing of the other 640 without retrieving them. My spam filter just looks for certain text
in the header of the e-mail, and if it matches any of the spam texts, it is deleted. The spam texts can
contain wildcards * and ?, and can cope with regular expressions.
To summarise, Netmasters components are really easy to use, and can be quite useful, but make sure
connectivity is smooth, or you'll get insurmountable problems. Regards,
Mark Jacobs
DK Computing
http://www.dkcomputing.co.uk
[email]markj (AT) criticalremovethisspuriousantispamstuff (DOT) co.uk[/email]
"Ludo" <inthebluelagoon (AT) yahoo (DOT) fr> wrote
| Quote: | Hans Galema wrote:
Ludo wrote:
[...]
Don't understand why you would have two of these events. In my
application there is only one.
Me either.
What do you mean with "in the continuation" ? Do you have special code
I mean "successive" (sorry I'm not very good in english ;)
in the OnInvalidHost eventhandler that could cause a successive
firing ?
[...]
This is the code from bcb6 smtpmain.cpp (an expired trial version is still
on my hd.)
void __fastcall TFormMain::NMSMTP1InvalidHost(bool &handled)
{
AnsiString NewHost;
if (InputQuery("Invalid Host", "Please Choose another host", NewHost))
{
//ShowMessage(NewHost);
NMSMTP1->Host = NewHost;
handled = true;
}
}
Yes I have the same code. And if you disconnect your network, in first
the program send an OnInvalidHost event and after if you reinsert the
same host and you press enter (on the InputQuery), you have a message
box with "Null Remote Address". And if you use the debugger, you can to
note that after the InputQuery you have two events.
You have not the possibility to stop the program execution (or just the
connection).
What I don't like in this function is that handled is only set to true
after an InputQuery. Such things can cause troubles.
Yes of course, but if I can not resolve this problem, I am obliged to
use others objects like "Indy's objects" but they are more complicated.
Better set handled to true in the first statement.
Hans.
|
|
|
| Back to top |
|
 |
Ludo Guest
|
Posted: Thu Apr 29, 2004 10:26 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Hans Galema wrote:
| Quote: | Ludo wrote:
Well why would you do that ? Also there is only one OnIvalidateHost
event. Yes if you restart there will be another, or other errors. What
should it ? That is a whole other problem. Remove that InputQuery
and set handled to true in the first place.
This is the second time that brought a misleading errorreport.
The CBuilder example does bring only one OnInvalidate host event.
Not everybody has that example. So you should habve told that
the second one only came after a new try to connect.
Or post the code of that eventhandler. Now I had to do that.
|
Yes, sorry for these badly explanations ... :(
| Quote: |
You have not the possibility to stop the program execution (or just the
connection).
Of course: change the code.
|
It's ok, after a discution with my colleague, I have added a try {} and
catch {} around the Connect function. Like this:
try
{
NMSMTP1->Connect () ;
}
catch (Exception &exception)
{
Application->ShowException (exception) ;
}
And now it's ok, I'm sorry, I did not know very well these instructions
(try and catch), I thought that they were only necessary in the WinMain
function.
| Quote: |
[...]
Well did you try that ? Is there a difference ?
|
No.
Thank you very well for help, regards,
Ludo
|
|
| Back to top |
|
 |
Ludo Guest
|
Posted: Thu Apr 29, 2004 10:33 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Hi,
Yes, thank you for you help. After a discussion, and a little
explanation, we have found that it's necessary to add try and catch
functions around the Connect function, like you come to indicate. Now
everything is ok.
Regards,
Ludo
Mark Jacobs wrote:
| Quote: | I have had this problem with the NetMaster components since 1998. First you get "Invalid Host" and then
subsequent attempts generate "Null Remote Address". I have never managed to work round this problem. In fact
it became difficult to cleanly exit my e-mail app, after this had happened, since it started generating C
exceptions (Access Violations that cannot be "caught" in a try...catch block) when I tried to close the form.
I got round the latter problem with a try..._except block. Here is the code :-
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCloseQuery(TObject *Sender, bool &CanClose)
{
try
{
try
{
try
{
// Some code to close all connections, possibly causing exceptions galore
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
ShowMessage("C Exception Caught");
}
}
catch (Exception &excp)
{
ShowMessage(excp.Message);
}
}
__finally
{
CanClose=true;
}
}
//---------------------------------------------------------------------------
In all truth, I don't think anyone has ever got round the badly programmed Netmasters components' inability to
cope with connection problems. It seems to stretch deep into their suite in that the same problems exist for
pop3, ping, time, traceroute, finger and ftp components too. Either live with it, or go to the slightly more
complex, but more complete Indy components (you'll have to sign up for the latest versions, but they are still
free).
One thing I have got out of this, is a superb spam-filtering e-mail receiver/sender. This morning I had 645
e-mails (in just 8 hours!!!), and my spam filtering technology I built in to my e-mail app only had me looking
at 5 of them, disposing of the other 640 without retrieving them. My spam filter just looks for certain text
in the header of the e-mail, and if it matches any of the spam texts, it is deleted. The spam texts can
contain wildcards * and ?, and can cope with regular expressions.
To summarise, Netmasters components are really easy to use, and can be quite useful, but make sure
connectivity is smooth, or you'll get insurmountable problems. Regards,
Mark Jacobs
DK Computing
http://www.dkcomputing.co.uk
[email]markj (AT) criticalremovethisspuriousantispamstuff (DOT) co.uk[/email]
"Ludo" <inthebluelagoon (AT) yahoo (DOT) fr> wrote
Hans Galema wrote:
Ludo wrote:
[...]
Don't understand why you would have two of these events. In my
application there is only one.
Me either.
What do you mean with "in the continuation" ? Do you have special code
I mean "successive" (sorry I'm not very good in english ;)
in the OnInvalidHost eventhandler that could cause a successive
firing ?
[...]
This is the code from bcb6 smtpmain.cpp (an expired trial version is still
on my hd.)
void __fastcall TFormMain::NMSMTP1InvalidHost(bool &handled)
{
AnsiString NewHost;
if (InputQuery("Invalid Host", "Please Choose another host", NewHost))
{
//ShowMessage(NewHost);
NMSMTP1->Host = NewHost;
handled = true;
}
}
Yes I have the same code. And if you disconnect your network, in first
the program send an OnInvalidHost event and after if you reinsert the
same host and you press enter (on the InputQuery), you have a message
box with "Null Remote Address". And if you use the debugger, you can to
note that after the InputQuery you have two events.
You have not the possibility to stop the program execution (or just the
connection).
What I don't like in this function is that handled is only set to true
after an InputQuery. Such things can cause troubles.
Yes of course, but if I can not resolve this problem, I am obliged to
use others objects like "Indy's objects" but they are more complicated.
Better set handled to true in the first statement.
Hans.
|
|
|
| Back to top |
|
 |
Hans Galema Guest
|
Posted: Thu Apr 29, 2004 10:53 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Mark Jacobs wrote:
| Quote: | I have had this problem with the NetMaster components since 1998. First you get "Invalid Host" and then
subsequent attempts generate "Null Remote Address". I have never managed to work round this problem.
|
Just tried with my application. I even removed the network card.
If I push the Send button I get an OnInvalidHost event.
If I try again then the same event. Can do it multiple times:
always the same. The form closes. The program continues to run.
All bcb3.
| Quote: | try
{
// Some code to close all connections, possibly causing exceptions galore
|
Why would you close a connection if there isn't any ?
| Quote: | In all truth, I don't think anyone has ever got round the badly programmed Netmasters components' inability to
cope with connection problems.
|
Aha! <g>
Now being amazed I did have a look in my code for the OnInvalidHost
eventhandler, expecting that I would set handled to true. But noting of that.
I only use a ShowMessage().
What I do is a try catch around a Connect();
try
{
NMSMTP1->Connect();
}
catch ( Exception &exeption )
Then I wait for the OnConnect event.
And there I only start a TTimer (with a short Interval).
And when the Timer fires I do a
try
{
NMSMTP1->SendMail();
}
catch ( Exception &Exception )
I programmed that several years ago. Don't remember exactly
why I did all those things. But apparently with benefit.
| Quote: | One thing I have got out of this, is a superb spam-filtering e-mail
receiver/sender. This morning I had 645
e-mails (in just 8 hours!!!), and my spam filtering technology I built
in to my e-mail app only had me looking
|
I think I remember some discussions you had about your filtertechnology
in one of these groups.
Mark you must have a very big monitor as you make lines over
110 karactes length. Could you please change that to about 70 ?
See for the trouble that it causes at point 3 and the advise
at point 4 under STYLE in:
http://info.borland.com/newsgroups/netiquette.html
Could you also not quote a comple post always ?
Hans.
|
|
| Back to top |
|
 |
Mark Jacobs Guest
|
Posted: Thu Apr 29, 2004 11:07 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
You should try reading my Clipper code! Anyway, I was feeling lazy when I quoted the complete reply and I had
typed enough to hide most of it.
1) Using timers to fire a sendmail after connecting successfully, is a very good idea. No wonder you don't
have any problems!
2) I allow users to close the application midway through a send or receive, so I have to abandon current comms
and this can cause some horrendous exceptions, all of which are now trapped by my triple try... blocks. My app
also uses Async Pro fax stuff, so anything could happen (it is a faxer and emailer and uses the address to
determine what to use to send the message - phone number or email address)!!
3) Sorry about my long lines, but I really cannot cope with Outlook Express newsgroup message setup. If there
is a better newsreader out there for free, let me know please.
Cya folks,
--
Mark Jacobs
DK Computing
http://www.dkcomputing.co.uk
[email]markj (AT) criticalremovethisspuriousantispamstuff (DOT) co.uk[/email]
|
|
| Back to top |
|
 |
Hans Galema Guest
|
Posted: Thu Apr 29, 2004 11:30 am Post subject: Re: NMSMTP & Abnormal program termination |
|
|
Mark Jacobs wrote:
| Quote: | 2) I allow users to close the application midway through a send or receive, so I have to abandon current comms
and this can cause some horrendous exceptions, all of which are now trapped by my triple try... blocks.
|
Now I understand. A good idea.
| Quote: | 3) Sorry about my long lines, but I really cannot cope with Outlook Express newsgroup message setup. If there
is a better newsreader out there for free, let me know please.
|
I use Mozilla, but I think that one can adjust OE to make shorter lines.
I do it by hand!. There will be an OE user who will tell you I hope.
Hans.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|