Professional Documents
Culture Documents
------------------------------------------------------------------------------3.2.5
[-] After closing the server connection, clear the authenticated user flag to
force reauthentication.
------------------------------------------------------------------------------3.2.4
[-] Changed X- header processing to use Buf definition rather than a fixed
array. The change is made to organization and aheaders, to prevent
memory overruns.
[-] If using alternate text, such as when sending plain text and HTML, and if
that alternate text is Unicode, be sure to set the charset for the
alternate text section and set Content-Transfer-Encoding: 7BIT or 8BIT
as needed and available.
[-] If the message body charset is UTF-8 or UTF-7, and MIME is expected, set
Content-Transfer-Encoding: 7BIT or 8BIT as needed and available instead of
setting Content-Transfer-Encoding: quoted-printable. The Unicode message
body can then be sent as-is, if 8-bit is allowed, or sent as UTF-7 if 8-bit
is not available from the server.
[-] Ensure message headers are properly sent when sending multiple attachments
across multiple messages, and the charset is UTF-8 or UTF-7.
[-] Ensure the closing boundary marker is sent, when needed.
------------------------------------------------------------------------------3.2.3
[+] Added -logcmds option to write the command line arguments to the log,
or to the screen, when also using -log option.
[*] RFC 6152 spells out that SMTP clients and servers must use "8BITMIME"
when support for 8-bit octects is requested and/or supported. However,
some SMTP software is responding with "250-8 BITMIME" instead, with an
embedded space in violation of RFC 6152. "8 BITMIME" is now accepted as if
it were "8BITMIME".
[-] If UTF-8 is selected with -charset option, and neither 8BITMIME nor
BINARYMIME are supported by the server, then UTF-7 will be used instead.
------------------------------------------------------------------------------3.2.2
[-] Fixed message body handling for Unicode / UTF-8.
[-] Fixed the -af option to read Unicode / UTF-8 files. The change was in a
routine common to several options.
[-] Fixed a variable initialization in the sockets code.
[-] Fixed attachment filename encoding for UTF-8 where the name does not
contain Unicode characters, but also is not strictly US ASCII.
[-] -LOG does not require a filename. If no filename is given, then Blat will
write everything to the stdout (screen). Fixed.
------------------------------------------------------------------------------3.2.1
[*] Completely removed "reply-type=original" from the source, so it cannot be
added to any message headers. No reference to this text was found in any
RFC at ietf.org.
[*] Add the whole server name/address to the Message-ID header. Before, only
the domain portion of the server name was added to the header. In testing
a multithreaded program, the routine that attempted to identify the domain
was causing a crash. The crash condition goes away if I just use the
server name as given by the user.
[-] When checking user input for Unicode, the buffer length should already be
set, therefore set the buffer length only if not already set. This allows
users to send binary files as their message body like older versions.
------------------------------------------------------------------------------3.2.0
[+] First attempt to make Blat.dll thread safe, meaning that a multithreaded
program that uses Blat.dll should be able to send emails with each thread
without stomping on each other. One caveat, if logging is desired, each
thread must provide a unique filename for the log file, so that the threads
do not corrupt each other's log entries. To make this thread safe version,
I took all of the global variables and made a structure of these, which a
pointer to the structure being passed to all routines. Each thread calling
Blat.dll will cause a new structure to be allocated, initialized, and used
for that thread's process. Some features of this change have not been
tested because I do not have the GSS library, nor have a need to use that
library for my home testing. The person who originally requested a thread
safe version of Blat.dll should have the means to test this change, and I
will attempt to contact that person to shake it out.
------------------------------------------------------------------------------3.1.2
[*] Changed the MultiByte to Unicode support calls to use CP_ACP instead of
CP_OEMCP, because the latter was not working for some folks using Cyrillic
code pages natively.
[*] Changed the ordering of attachments so that embedded attachments come
first, inline attachments are second, text attachments are third, and
binary attachments are last. It was reported that the prior ordering did
not work for some users, and the new ordering now works for the user who
reported an issue.
[*] -LOG does not require a filename. If no filename is given, then Blat will
write everything to the stdout (screen).
[-] Fixed the Try count INFINITE to work as intended.
[-] Removed some code that attempted to use the shortest encoded attachment
name that spanned multiple lines. The change returns the encoded lines
back to the same as done with versions 3.0.0 through 3.0.4.
[-] Found UTF-7 encoding was adding an extra hyphen in some cases.
------------------------------------------------------------------------------3.1.1
[-] Fixed a problem with parsing the command line and email addresses that have
an ampersand (&) or a percent sign (%) by themselves, not using HTML
formatting.
------------------------------------------------------------------------------3.1.0
[+] Added support for Blat.wcx in Total Commander (http://www.ghisler.com)
[*] Blat 64-bit includes GSS encryption support once again. gssapi64.dll can
be downloaded from http://web.mit.edu/kerberos/dist/testing.html#kfw-3.2.3
Download kfw-3-2-3-amd64.zip and extract the files. gssapi64.dll is in
the kfw-3-2-3-final/bin folder.
[+] Added more support for HTML in email addresses, such as %20 in place of
spaces, or < and > in place of < and >, respectively. This should
make the email parser more compatible with web servers. I do not know if
there is currently a problem, but I saw a change from someone else that
made a quick effort to support %20 in email addresses, so I took that idea
and expanded it.
[+] The ability to have multiple -body options used for each session was an
undocumented "feature" in versions 2.6.2 through 2.7.6, but this was
dropped when version 3.0.0 was developed to support Unicode. A user on
SourceForge.net complained that this "feature" was missing from version
3.x, so I added this back in and now it is being documented in this
Change log.
http://tinyurl.com/alx3z7z
[+] Replace the user's login password in blat's log file with "*****" when
using -debug. -superdebug is not effected, because this mode will write
the individual bytes in HEX mode, which the user can then validate if their
login credentials are being rejected.
[-] Fixed inline attachments to remove "reply-type=original", making the
headers look like they did with Blat version 2.6.1. The test message
received by Windows Live Mail looks as expected -- inlined text attachments
are viewed as if part of the original message.
[-] RFC 2046 says that if "Content-Type:" is message/rfc822, then only 7BIT,
8BIT, and BINARY are permitted encoding types. If an attachment is found
to have this content type defined, then the attachment will be treated as a
text file, and the encoding will be either 7BIT or 8BIT. However, the
content of the attachment will not be validated for RFC 822 compliance.
[-] Fixed a missing terminator byte for text attachments that sometimes allowed
text attachments to be longer than expected, and/or incorrectly converted
to UTF-8.
------------------------------------------------------------------------------3.0.7
[-] Removed a line of debug code that printed command line arguments to the
screen, always.
------------------------------------------------------------------------------3.0.6
[+] Added error messages for attachment problems. These include: no file was
found for a given search string, a name that matches the search string does
not appear to be an actual file, a file that is larger than 4 GB, a file
that cannot be opened, and a file that cannot be read. These extra
messages should help people understand why their attachment(s) did not get
sent, or why Blat exits with error code 12.
[+] Add more intelligence for checking UTF-8 byte sequences when the UTF-8 Byte
Order Marker (BOM) is not present. This helps reduce the likelihood of
incorrectly marking the charset as "UTF-8" or not.
[-] Forgot to properly set charset= in headers when Blat determines the message
body is UTF/Unicode. Blat will now set charset= to UTF-8/UTF-7 as needed.
[-] Fixed options file parsing that I broke in 3.0.5, trying to support UTF-8
and Unicode files that may not have a BOM.
------------------------------------------------------------------------------3.0.5
[*] Text attachments will be sent in their entirety, even if the message is
supposed to be multipart. This change allows UTF/Unicode files to be
processed correctly so that all characters of the file should be received
and decoded without issue.
[-] Extensive changes related to how Unicode is handled versus 7-/8-bit
characters in English, European, and some other languages. These changes
include fixes to salutations, postscripts, the subject line, text
attachments, and attachment file names. Additional changes identify 7-bit
data for text messages and text attachments.
------------------------------------------------------------------------------3.0.4
[+] If 32-bit Unicode code is run with Windows 9x/ME, exit with error code 14
because Unicode is not supported with Windows earlier than Windows 2000.
[+] Try to support non-ANSI computer names, as found with a Russian version of
Windows 7.
------------------------------------------------------------------------------3.0.3
[-] Per Thomas Beutlich, changed how the blat log file is opened, to create
this file as UTF-8 when Blat is compiled with Microsoft Visual Studio 2005
or newer. When compiled with Visual Studio 2003, or earlier, Unicode
strings will be converted to UTF-8 before being written to the log. If the
log is created, the first three bytes will be a UTF-8 marker. Testing with
Visual C++ 6.0 in Unicode showed that VC could not write Unicode strings
correctly, which required that strings be converted to UTF-8 before writing
to the log.
[-] Fixed yEnc encoding to work properly with binary files. One line of code
needed to be moved about eight (8) lines lower.
------------------------------------------------------------------------------3.0.2
[+] Changed subject handling to use Buf class, and to convert to UTF-8 right
away, if necessary.
Here's why -- the three backslashes and quotation mark are actually taken
as two different character sequences, the double backslash is first, then
the backslash and quotation mark is next. What you see above on the
command line will be initially seen in Blat as this:
1st <some@> \"<img src=\\\"cid:banner.gif\\\"><BR>Hey 1st,\"
Then when I go to parse this to look for a name, an email address, and a
salutation, the result will be these three parts:
Name:
1st
Email:
<some@>
Salutation: "<img src=\"cid:banner.gif\"><BR>Hey 1st,"
The escaped quotation mark in front of the '<' is the tell Blat this is not
the next email address. Instead, '<' is to be taken as part of a
salutation. Otherwise, '<' is normally seen as the start of the next email
address.
Note now that the salutation has internally to it an escaped quotation
mark. The next step is for me to remove the leading and trailing quotation
marks, to make it presentable in an email message. Lastly, I remove the
escape characters leaving this final text to be put into the outgoing
email:
<img src="cid:banner.gif"><BR>Hey 1st,
During testing, I run Blat from .bat files with a variety of options. I
had to make a small change, or enhancement, to permit HTML in salutations
when using .bat and .cmd files to run Blat. The issue is that Windows 7
command processor does not like < or > in command lnes, except as used for
keyboard input and screen output redirectors. This is not a problem if the
< and > are used around email addresses, but it is a problem when used as
part of HTML. The workaround that I came up with is to allow square
brackets '[' and ']' to be used in place of '<' and '>', respectively, when
in salutations. In salutations, Blat will convert square brackets '[' and
']' to '<' and '>', expecting them to be used as HTML.
Applications that call Blat to send emails might be able to use '<' and '>'
properly. However, if you find a situation where these do not work, try
using square brackets instead.
[*] Keep the server connection open until the email has been sent to all
recipients. Previously, the server connection was closed after each
message, even when sending to multiple recipients.
[*] Changed how the command line is processed in processOptions(), so that only
options will have forward slashes (/) changed to hyphens (-) automatically.
This feature was introduced in version 2.5.
------------------------------------------------------------------------------2.7.7
[-] Abort the program if an attachment is not found. The return code is 12.
[-] Aligned the help text for -level option.
------------------------------------------------------------------------------2.7.6
[*] Make sure all uses of strncpy() properly terminate the target string, to
eliminate a potential memory overrun.
[-] Attempt to fix a potential problem with time zone adjustments in the Date:
header for locations that do not have daylight savings time.
[-] Fixed a memory leak in gensock_connect(), introduced at version 2.6.0.
------------------------------------------------------------------------------2.7.5
[-] Fixed a problem with looking for default extension types. The instruction
ordering was backwards, causing a crash if the file type was not listed in
our source file (filetype.cpp).
------------------------------------------------------------------------------2.7.4a
[+] Removed first attempt at wide char/unicode for the time being. I do not
have any way to test it.
[+] Added X-MimeOLE: header for Blat with its version number when adding header
X-MSMail-Priority.
[-] Fixed the help text for spelling error and alignment.
------------------------------------------------------------------------------2.7.4
[+] First attempt at making the code compatible with wide character / Unicode
compiles.
[*] Small changes for encoding headers when 8-bit characters are used.
------------------------------------------------------------------------------2.7.3
[*] OpenWatcom v1.8 can now build Blat after making changes to makefile.w32 and
some of the source files.
[*] I made some preliminary changes for compiling as 64-bit with Visual Studio
2005, but there needs to be more changes so VS 2k5 will build in 64-bit
mode. For now, the changes do not affect the 32-bit builds. When I get
the 64-bit build working, Blat will identify itself as "a Win64 (AMD64)
SMTP mailer" instead of "a Win32 SMTP mailer". I am running Vista 64-bit
so I can test Blat when I have it building as 64-bit. The goal is to have
both 32-bit and 64-bit versions available to choose from.
[-] Fixed a memcpy() bug in options.cpp that I introduced with version 2.7.2; I
had used an ampersand (&) with the first argument when I should not have.
[-] Removed ampersands from the fifth (5th) argument to RegQueryValueEx() in
regs.cpp. These ampersands have existed from before I took on the source.
------------------------------------------------------------------------------2.7.2
[*] When delaying between messages, and if POP3 access is requested, then delay
after the POP3 access before sending the first SMTP message. Some service
providers require a delay after POP3 access before they will acknowledge
and allow SMTP access. This time delay is unknown, so a little testing is
required to find what delay value works and what does not.
[-] Use "strncpy" instead of "memcpy" to avoid potential page faults in
gensock.cpp and options.cpp.
------------------------------------------------------------------------------2.7.1
[*] Allow -log to be used without a filename. When no filename was specified
before, this could have caused problems with Blat.
[*] Force the -contenttype option to be available for all builds *except* LITE.
[-] If the body filename is not specified with the -bodyf option, allow Blat to
continue without crashing.
------------------------------------------------------------------------------2.7.0
[+] Added "-nomd5" option to disable CRAM-MD5 authentication. This is for
users who know their SMTP server/service provider has a flawed CRAM-MD5
implementation.
[+] Added "-contentType <string>" option so users can specify the ContentType
header for attachments that do not have a registered content type for the
extension. For example: -contenttype "text/calendar"
[*] Removed an extra "m" in the word "comments" associated with the -comment
help text.
[*] If the POP3 server name has not been specified, and POP3 access is
requested, then use the SMTP server name as the POP3 server name. In some
cases this is true, but most cases I have seen these functions are handled
by different servers and using the SMTP server name as the POP3 server name
would fail the POP3 access. Using POP3 access without specifying the POP3
[*]
[*]
[*]
[*]
[-]
[-]
[-]
------------------------------------------------------------------------------2.3
[+] add support for GSSAPI authentication using Kerberos v5. This change also
supports encrypted packets using Kerberos. You need gssapi.dll from MIT.
http://web.mit.edu/kerberos/www/
Joseph Calzaretta from MIT provided the code.
[+] new command line options for GSSAPI: -k, -kc, -service, -level.
------------------------------------------------------------------------------2.2.2 (2004.02.26)
[-] fixed a bug where a socket was being left open after sending mail. A break
instruction in a for() loop needed to be removed, in sendmail.cpp. Thanks
go to Tim Musson for the suggestion, and Denis Mikhailitsky for reporting
it.
[-] fixed a bug in parsing email addresses where the address is 31 bytes long.
Thanks to Doug Jenkins for reporting this issue.
[-] minor changes to the options list.
------------------------------------------------------------------------------2.2.1 (2003.12.20)
[+] more command line options have been allowed for cgi script support, such as
-debug and -log options.
[+] support a comment character in options files and recipient list files. The
command line option for this is -comment <char>, where <char> is the
character to be used as the start of a comment. In DOS batch files, this
would be the semicolon (;), which is the default character in Blat. In
Perl scripts, this would be a hash or pound sign (#). If the comment
character is found in an options file, or recipients list file, the rest
of that line will be ignored. You can use the comment character to add
comments to your recipients list that would help you remember important
items about each recipient.
[+] support accessing a POP3 server prior to sending to SMTP. Use the new
-installPOP3 to place your server name, login name and password values into
the registry. The format of this command line option is:
blat -installPOP3 servername - - port {profile} loginname password
The profile in the above line is optional. If not needed, then replace it
with a hyphen. The other hyphens mean those values are not used with
-installPOP3. The default value for the port number is 110.
When Blat wants to send a message to the SMTP server, if a POP3 server has
been defined for the profile being used, Blat will perform the following
[+]
[+]
[+]
[+]
[*]
[*]
steps:
1. Connect to POP3 server.
2. Send USER xxxx using the user's POP3 login name, wait for +OK.
3. Send PASS yyyy using the user's POP3 password, wait for +OK.
4. Send STAT command to get a count of messages, wait for +OK.
5. Send QUIT, wait for +OK.
After the Quit is issued, Blat will proceed to send email to the SMTP
server.
The requirement for POP3 before SMTP is an attempt by some ISPs to stop
spam from originating through their service. They justify this tactic by
requiring people to have a paid account, but do not enforce any real kind
of SMTP authentication or tracking.
added -alttext and -alttextf options. These should be more meaningful
than -althtml or -htmaltf options. The latter two take a filename argument
that contains the plain text to be associated with the intended message
body. -Alttext takes text on the command line as its argument,
while -alttextf takes a filename. It is my intention to drop -htmaltf
and -althtml options at some future date. The usage text already drops
them both in favor of -alttextf. The original code to use -althtml was a
hack, to get something quick for testing. Changing the name to -alttextf
seems to be more meaningful and has wider application.
Please stop using -htmalf and -althtmf, use -alttextf instead because it
should make this clearer. The -alttext is new, it accepts text on the
command line only, like between quotation marks ("). If the pipe character
is in the text, it will be effected by the -binary option just like it
would be if used with the -body option.
added -hkcu to -install[SMTP|NNTP|POP3] to place Blat's values into
HKEY_CURRENT_USER instead of HKEY_LOCAL_MACHINE. -hkcu has also been
added to the -profile -delete command line options to delete Blat's values
from HKEY_CURRENT_USER. An example of its use might look like this:
blat -install server emailaddy -hkcu
or
blat -profile -delete -hkcu oldisp oldnntp
When listing profiles from the registry, if any profiles exist in
HKEY_CURRENT_USER, Blat will first print "Profile(s) for current user --".
When listing profiles from HKEY_LOCAL_MACHINE, Blat will first print
"Profile(s) for all users of this computer --" if it finds there are
profiles in HKEY_CURRENT_USER. The -hkcu option is not accepted when
listing the profiles; it will be ignored if found.
Blat will look for its values in HKEY_CURRENT_USER before it looks in
HKEY_LOCAL_MACHINE, but will not generate any errors if it cannot find
profile data in HKEY_CURRENT_USER.
when storing profile data to the registry, if Blat encounters an access
denied error when trying to use HKEY_LOCAL_MACHINE, Blat will try to store
the profile data to HKEY_CURRENT_USER. The purpose for this is to allow
users of multiuser machines to keep their personal Blat preferences and
system administrators to put access restrictions on HKEY_LOCAL_MACHINE.
A request for this came from 'wolfgangbeyer2' on the Blat mailing list.
added "<all>" and "<default>" to -profile -delete, to delete all profiles
and the default profile, respectively. Use the quotation marks to ensure
the < and > characters are included. Without the quotation marks, Windows
will interpret these characters as something else.
crtdll.dll will no longer be used by blat.exe. Instead, Blat will use
msvcrt.dll after it was discovered that msvcrt.dll is significantly faster
than crtdll.dll. According to Microsoft, only Windows 95 was shipped
without msvcrt.dll. By this time, Win95 users should have installed this
.dll as a result of some other program they installed in the intervening
years. The speed difference between the two DLLs is most apparent when
using large amounts of memory. Otherwise, the size of Blat's executable
increased by only 512 bytes.
[+]
[+]
[+]
[+]
[*]
[-]
converted to quoted-printable: the equals sign (=), and binary zero. All
other byte values will be sent as-is.
add Message-ID: to the headers.
add support for -delay <seconds> to pause between messages when using
the -maxnames option or when sending multipart messages. It is used only
for sending mail, not for posting to newsgroups.
add support for -maxnames <count> to send messages to blocks of <count>
recipients. This is useful for home-based email lists with restrictions
from their ISP on how many names can be sent to per message. It does not
change the To: or Cc: lines in the message, it only changes how many RCPT
names are sent to the SMTP server.
support for alternative plain text messages has been added. Use the
-htmaltf <filename> option to specify a plain text file that should be used
with your HTML message. Recipients who do not have html email support will
see the plain text. Others will see the HTML.
when adding a new profile, the opposite server (SMTP v NNTP) will not be
created at the same time. If creating a new SMTP profile, NNTP server
information will not be created in the registry. If creating a new NNTP
profile, SMTP server info will not be created.
fixed a bug that prevented binary files being sent as the message body. To
send binary files as the body of a message, the -uuencode or -base64 option
must be used. For example: blat binfile.exe -to me -s test -base64.
------------------------------------------------------------------------------2.1.1 (2003.08.13)
[*] removed support for gwinsock.dll and gensock.dll, since that functionality
is built into blat.
[*] when using the -profile option to list available profiles, quotation marks
(") will be surround the email address, just in case a people name is used
with it.
[-] one global and one static buffer variables are now being initialized /
cleared properly in the .DLL.
[-] parsing email addresses was causing memory to be corrupted if the list of
email addresses did not include people names.
[-] when checking options for missing arguments, check each argument against
the list of known options and stop if one is found. This will allow
hyphens to be used at the beginning of arguments if those arguments are
not also known option names. For example,
blat - -body "-testing-" -s "subject matter" -to me.
[-] userid/password variables cleared if there is an error reading these
values from the registry. In this condition, Win2K placed garbage in
these variables, while WinXP does not.
------------------------------------------------------------------------------2.1.0 (2003.07.22)
[+] lite version selectable with a compile option.
[+] add support for comma delimited filenames with -attach or -attacht or
-embed. For example, -attach *.jpg,*.gif
[+] support for signature files. Blat will include the '-- '. Use the new
option '-sigfile' or '-sig' followed by a filename.
[+] support for a random tagline through a compile-time switch. Use '-tag'
or '-tagfile' followed by a filename. This file must be text. Each
tagline must be on a single line. To have line breaks in the outgoing
email, use "\n" in the text. For example: "This is a line break.\nChip"
would become
This is a line break.
Chip
[+] support for postscript lines (PS.), like instructions for how to
unsubscribe from a mailing list. Use the option '-ps' followed by a
filename.
[+] support for automatic detection of salutations. When an email address for
the -to option has text that follows the '>', this is used as a salutation
for the message body. If the salutation has a comma, the text must be
surrounded with quotation marks.
For example: blat file -to "Chip <nul@localhost> \"Dear Chip,\"" In this
example, the "Dear Chip," will be the first line of the message, which will
be sent to "Chip <nul@localhost>". Please notice the \ before each
quotation mark, this is to tell the command line parser to keep the next
character. The two quotation marks at the end are for delimiting the
salutation, and for delimiting the whole name/email/salutation text. If
the salutation does not have a comma, then you do not need an extra pair
of quotation marks.
Salutation support does not work with -cc or -bcc names.
[+] support for the 250-pipelining option at compile time. The net effect is
to increase the .exe size by 1K without gaining anything useful at runtime.
In other words, do not bother with it.
[+] multipart message support at compile time. When the sum size of
attachments exceeds the server's maximum message size, or the size
pecified with the -mps/-multipart option, each attachment will be sent in
a separate message, split as necessary. The resulting messages can be
ieced back together by client software that is aware of multipart messages
(see RFCs 1341 and 2046). To make this work, messages will be sent encoded
with UUEncode (default) or yEnc (user selected).
[+] support for -embed option, used with sending html with embedded images and
other ojects into the message. Usage is:
-embed <filenames>
[*] -plain removed since the SMTP server responses are now parsed properly,
and the AUTH options recognized.
[*] -penguin with attachments only works when using -uuencode or -yenc, and
then only when all attachments can be sent in a single message.
Multipart messages and -base64 will cancel -penguin.
[*] modular source files.
[*] .rc changes from Tim Musson.
[*] authorization will now look for "PLAIN" and "LOGIN" options to the
"250-AUTH" response from the EHLO command. This should eliminate the need
for -plain command line option.
[*] when the server rejects a recipient address, blat will continue until all
the recipients have been checked. The log will reflect errors for all bad
recipient addresses. The server's actual error message will be listed with
each address. In some cases, it may be necessary for the user to supply
-u/-pw options to authenticate themselves to the server.
[*] blat's title line will be put into the log file as well as printed to the
screen, to make it easier to identify which version built which part of
the log.
[*] the chosen/default character set will be included in message headers as a
separate line item.
[-] supply '<' and '>' surrounding the email address for the "Mail from:"
command sent to the SMTP server. Some servers require this, while others
do not.
[-] newsgroups will be listed in the "Sending to..." message when sending to
NNTP. The message used to list SMTP recipients if present.
[-] error logging fixed so SMTP server information prefetch ruotines do not
halt the program prematurely.
[-] dll Send() function now exported.
[-] SMTP and NNTP authorization now account for slow servers, and does not
issue empty AUTH/AUTHINFO commands. It was found that when a server issues
the welcome line, it may not include the remaining "250-" option messages
immediately. One server in particular delayed sending the rest of the
multiline response for about 1/2 second (500ms). If a multiline response
is received, blat will now wait up to one second for the rest of the
the message. In this version, with multipart support enabled, when the
combined size of all attachments meets criteria #1 above, Blat will load only
as much of each attachment as it needs to send an individual message. This
could result in lower memory use by Blat.
------------------------------------------------------------------------------2.0.1 (2003.06.29)
[+] -ua to include User-Agent: header line instead of X-Mailer:
[+] yEnc for attachments as a compile time option. A separate set of binaries
has been provided.
[*] option parsing has been improved to catch malformed options easier.
[*] blat only displays full help with the -h switch, but if other switches are
malformed, it lists the first one it had a problem with. Yes, you can send
this to the log also!
[*] parsing of email addresses has been moved to its own function, to make it
easier to call for the Mailfrom: and RCPT: server commands.
[*] Content-description: header line for newsgroups will now say "News message
body" instead of "Mail message body" when appropriate.
[-] when sending to newsgroups with yEnc attachments, the
Content-Transfer-Encoding: will say "8BiT" instead of "7BIT".
[-] Before exiting the program, if a log file is open, an "End of Session"
message will be written.
------------------------------------------------------------------------------2.0.0 (2003.06.26)
[*] New order for the syntax output when running Blat with no parameters.
[+] -of <filename> : text file containing more options (also -optionfile)
[+] -ss : suppress subject line if not defined
[+] -charset <cs> : user defined charset. The default is ISO-8859-1
[+] -hdrencb : use base64 for encoding headers, if necessary
[+] -hdrencq : use quoted-printable for encoding headers, if necessary
[-] When building headers, certain fields were being fixed to conform to RFC
standards. The fixes were implemented in place, which could have caused
problems if blat is used to send smtp and nntp at the same time. This has
been corrected.
[*] The encoder routines have been modified to use Buf constructs instead of
relying on malloc(). The Buf construct will automatically issue malloc() as
needed.
[*] One routine was consolidated into its only caller, for minor efficiency.
This was done for the -sf option.
[*] The various encoder routines have been moved to the top of the file, to
eliminate the predefinitions of these routines. This also made it much
easier to implement Buf style parameter passing along side char*
parameters. C++ allows function overloading, so the quoted-printable and
base64 encocders have been overloaded to facilitate buffer encoding versus
header line encoding.
[*] If no recipient email addresses and no newsgroups are specified, an error
message is displayed and the program aborts.
[*] Extra carriage returns and line feeds in the log file have been removed by
scanning the resulting string for duplicate line feeds.
[*] The timestamp delimiter line has been put back in, with a new format to say
"Start of Session/End of Session".
[+] -timestamp : when -log is used, a timestamp is added to each log line
[+] -binary : do not convert ASCII | (pipe, 0x7c) to CrLf in the message body
[*] Blatcgi now knows 'ORGANIZATION' and 'CHARSET' values. The original code
knew 'ORGANISATION', now the US spelling has been added.
[+] -dsn to request a change in default delivery status notification behavior.
The default behavior is to receive a notification for all failed and
delayed deliveries. -dsn allows this to change so only the status
notifications you want will be sent back, if at all. The available options
for this are: n (never), s (successful), f (failed), and d (delayed).
These can be used in any combination, but n will always take precedence.