PopFetch works in conjunction with DSMTP (Netwin's SMTP server) so that when it starts
a dial up networking connection, DSMTP can deliver all mail waiting to be sent to
non-local addresses.

What happens when a message cannot be delivered?

POPFetch always copies the current message that it is retrieving to
file (msg.dat). It then tries to send the message immediately on to the
SMTP server. If for any reason this delivery fails, POPFetch stops
and closes all TCPIP connections and waits for the next
dial up time, at which point it will try to send the unsuccessful
message again.

If the message cannot be delivered because the information stored in msg.dat
is corrupt, or the message cannot be sent to any users - even the default address to
say that a user cannot be reached, then POPFetch will write the message
to a 'duds' file, duds.dat. There is a safety net setting, max_duds with a
default of 10, such that if POPFetch detects that it has delivered
the max_duds number of messages in a row to duds.dat then it will shut
itself down (stop the popfetch service on NT).

Notes:

If a message fails to be delivered to the SMTP server,
POPFetch stops and closes all TCPIP connections and waits for the next
dial up time, at which point it will try to send the unsuccessful
message again.

Every time the ras_timer period is reached, popfetch will try to retrieve mail for all accounts
specified by a pf_user line.

If a message cannot be delivered, for example if the recipient does
not exist or the SMTP server rejects the recipient address, then the fallback
address will receive the message instead. POPFetch adds some informational
lines to the message body stating which recipients have received the message
and which have not.

log_path \dmail\log (\getall.log)

work_dir defaults to no path, then log_path def to work dir

Ras timer sets period of dial rather than interval, by default
(isinterval=FALSE)

POPFetch knows that the next line of an SMTP response is part of the same
comment when the fourth character of the response is a dash, '-'.

reads headers that go over multiple lines. The only header where this
matters for POPFetch is the header set by pf_header

if the pf_header setting cannot be found in the message to be sent out,
POPFetch looks for the 'X-Rcpt-To: ' header, followed by the 'To: ' header,
then if even that header cannot be found it will send the message to the
default address, if that does not exist then the
message will be appended to the duds file, duds.dat

-DFLT_WORK_PATH does not exist - i.e. use exe directory

minimum ras_timer setting of 5 minutes if doing RAS
dial, i.e. if you have a ras_entry or ras_number setting, otherwise there is no mimimum
setting.

The ras dial up is considered to have succeeded if another program is controlling the dial
session - there is a pf_wait setting to set a 'try-again' time to counter the fact that the other
process might still be doing the dialup. This wait period is only used if POPFetch cannot reach
the servers when it wakes up.

If a message fails to be delivered to multiple recipients, POPFetch will only send
one message to the pf_dflt_address, with a paragraph added to the top of the message specifying
which recipients did not receive the message.

You can have multiple pf_user lines. Each line sets
an email POP account that POPFetch should check for
mail. As such, the pf_user setting takes parameters of the
username, password and IP address for the POP server where the
mail account exists.

If the pf_header setting cannot be found in the message to be sent out,
POPFetch looks for the 'X-Rcpt-To: ' header, followed by the 'To: ' header,
then if even that header cannot be found it will send the message to the
default address. If that does not exist, the
message will be appended to the duds file, duds.dat

If a message fails to be delivered to multiple recipients, POPFetch will only send
one message to the pf_dflt_address, with a paragraph added to the top of the message specifying
which recipients did not receive the message.

Test POPFetch manually by running it in a dos command box with the -test option, e.g.,

c:
cd \dmail
popfetch -test

Because you have, log_level debug, set in dmail.conf POPFetch will log at debug level to the DMail log_path
directory, typically,

c:\dmail\popfetch.log

Once you are happy with it's operation, you should set POPFetch to run as a service just like the DWatch process
which runs the DMail servers.

Starting with version 3 of DMail you will find an executable, addsvc.exe, in the c:\dmail directory, i.e. it is in the distribution set and
should have been copied across when you installed DMail. If you can not
find that executable, download it from here and copy it to your c:\dmail
directory.