Made the packaging system better, with readmes and a better install script.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9115 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Nathan Whitehorn 2004-09-30 03:49:35 +00:00
parent 6c033b8a92
commit 43c1e26809
4 changed files with 538 additions and 0 deletions

View File

@ -22,3 +22,6 @@ LinkSharedOSLibs mail_daemon :
Package haiku-maildaemon-cvs :
mail_daemon :
boot beos system servers ;
Packages haiku-maildaemon-cvs :
README LICENSE install.sh ;

12
src/servers/mail/LICENSE Normal file
View File

@ -0,0 +1,12 @@
Copyright (c) 2001-2004, Haiku, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
•Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
•Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
•Neither the name of the project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

470
src/servers/mail/README Normal file
View File

@ -0,0 +1,470 @@
BEOS Mail Daemon Replacement v3.0.0
ABOUT:
This is a drop-in replacement for the BeOS Mail Daemon that comes with
BeOS. Its purpose is to be 100% compatible with the original mail_daemon
and to improve it by adding features. The package contains the following
files:
README
The file you are reading.
LICENSE
Conditions for using/distributing this package.
libmail.so
This library provides the backend for the new mail_daemon.
It will be installed in /boot/beos/system/lib
mail_daemon
This is the new replacement Mail Daemon. It will be installed in
/boot/beos/system/servers, overwriting the original mail_daemon file.
BeMail
This is a new version of BeMail, based on the original, which Be has,
in their infinite wisdom, open sourced. This provides full multi-account
support, among other things. Great stuff. It will be installed in
/boot/beos/apps/BeMail
E-mail
This is the new e-mail preferences panel. It will be installed to
/boot/beos/preferences, overwriting the original preferences app.
Addons
There are a *lot* of addons. These contain much of the functionality
of the mail daemon, and will be installed in
/boot/home/config/add-ons/mail_daemon
***********
Warning:
Do not keep this and other mail_daemon executables on your HD!
Because the original Mail Kit uses the mail_daemon's signature
to find it, having more than one version will cause things to
randomly fail, when it finds the old version instead of the new.
***********
INSTALLATION:
Installation is through a zip file. Be sure to download the correct version
for your system (PPC or x86 (Netserver version for standard x86 BeOS or BONE
networking for people who are using a newer, unofficial BeOS)). Just unzip the
file somewhere and double click the install.sh icon.
To configure the new mail_daemon, open the E-mail preferences app
from your Deskbar menu after installing the package.
USAGE:
Open the E-mail preferences app (BeOS Menu/Preferences/E-mail) and
configure your accounts. To save all the changes, close the window
by clicking "Save". To delete an account, select it and press the
DEL key or use the Remove button.
Right click the Deskbar mail icon to access a menu with various options.
Single-click the icon to open your mail inbox. The field about new messages
will be available for selection if you have new messages, and will open a
Tracker query displaying those messages. The Quit option quits the
mail_daemon. You don't want to do this. Right-clicking the Deskbar replicant
while pressing the SHIFT key reveals more options for Sending/Receiving
emails.
ADDON INSTALLATION:
Add-ons should be installed in /boot/home/config/add-ons/
mail_daemon/ in the subdirectory specified in the add on documentation.
This directory will be automatically created by the installation process.
The distribution contains POP3 (with APOP support), IMAP and SMTP (including
SMTP-Auth) protocols, as well as Add Fortune, R5 Daemon Filter, and Match
Header filters.
FILTERS:
This release contains four filter addons. To enable them, use E-mail Filters
in preferences, and choose the appropriate direction to apply them in
(specified below), then add that filter. You can add several instances of
the same filter type, although this is only recomended for RuleFilter. Addons
will be executed in the order they appear in the list, and can be reorderd with
a simple drag and drop. To install new filters, follow the directions in
ADDON INSTALLATION.
Add Fortune
This filter adds a random fortune to the bottom of all outgoing e-mail. For
an example, open your Terminal and type fortune. The database can be
specified in config, although it is highly reccomended that you use the
default. For more information on Fortune and its database format, go look
somewhere on the web.
R5 Daemon Filter
This filter executes old style mail daemon filters on inbound messages.
For more information, see http://www.betips.net/chunga.php?ID=511
Match Header
Allows you to filter messages based on an arbitrary header, of a value
you define. The value can be a regex. So to trash messages containing
"get rich quick" in the subject, do this: If |Subject| is |*get rich quick*|
Then |Delete Message| The ||, of course, are just the edges of the
text boxes. Or, to put it messages from BeUserTalk in ~/mail/beusertalk:
If |Subject| is |*BeUserTalk*| Then |Move To| |/boot/home/mail/beusertalk|
This works for any header field. Also, THREAD is a special header
containing (you guessed it!) the message thread. Note that [ and ] are
special characters. If you wish to include these in your test value, you
need to put a \ before them, which causes the regex engine to interpret
them as [ and ] characters instead of marking a set of values. For more
info on this, read up on regular expressions.
AGMS Bayesian Spam Filter
This filters out spam. If you want to know more (and you may) more
documentation can be found in the directory with no spaces in its
name: AGMSBayesianSpamDocumentation. It even has, unlike this, lots of
pretty pictures. Also see the note about SampleSpamDatabase.
WHAT HAPPENS WHEN YOUR E-MAIL IS FETCHED:
For POP3, this is entirely straightforward. New e-mail is fetched into the directory you've identified in Inbox. If you've enabled partial downloading, they appear as partial e-mails, which have a blue and white striped icon. If you double-click them, they download and then open in BeMail (or your chosen mail reader).
For IMAP, things are slightly more complicated. The IMAP folder structure is duplicated in your inbox. So if you chose /boot/home/mail/in as your inbox, you will end up with IMAP folders like /boot/home/mail/in/INBOX. Further, you should note that what happens in IMAP folders is bidirectional. That is, if you move a file inside the folder hierarchy, it moves on the server. If you duplicate one, it's duplicated on the server. If you move in an e-mail from another account, it's uploaded to the server (this also means that you can have it store sent mail on the server). You can also create and delete mail folders in Tracker. Pretty cool, huh? As a final note on IMAP, because it stays connected to the server, the "fetch mail every x" option is irrelevant, except as a way to start the connection, as it only connects when you first press "Check Mail Now". A final note: moving partial messages from one account to another causes the message (1) not to be transferred and (2) to be deleted. Unpleasant. So download them first.
Note that if you have a large number of archived e-mail messages on your system, it will scan all of them for message ID numbers to keep track of what has been downloaded and what has not. This will delay the start of the mail check if you have tens of thousands of old messages (and thrash your hard drive). To work around that, remove the MAIL:chain attribute from your old messages; the Terminal command "rmattr MAIL:chain *" will do that for all files in the current directory.
HISTORY:
September 29 2004 - v3.0.0
- Added POP3-SSL support
- Fixed code so IMAP could compile if OpenSSL not used.
- Integrated into Haiku source tree
- Changed installation system
- Massive API update
March 9 2004 - v2.3.0
- Fix date parsing to handle time zone offset numbers inside round brackets.
- Handle spam messages with a malformed MIME Content-Type header that specifies multipart, but no boundary marker string. The messages show up as empty. They also sneakily have a second Content-Type that says the message is text. So, only use the multipart entry if there is no other, and only if the boundary string exists too.
- Makefiles changed to do a parallel make on multiprocessor systems.
- BeMail no longer breaks URLs in outgoing mails, at least it tries to do that. It's kind of a hack like the whole word-wrap algorithm, so it shouldn't do much more harm :)
- E-mail addresses are now properly recognized without the "mailto:"
prefix.
- Doesn't keep as many file handles open as before (was using 4 per window, with the BeOS limit of 100 files open, that was a maximum of 25 BeMail windows).
- Included new icons by Stefano
- Fixed a horrible bug that would cause deletion of entire mailboxes on newly set-up IMAP accounts.
- IMAP-SSL support
December 29 2003 - v2.2.6
- Don't use "!" in file names of e-mail messages, the bash shell doesn't like it.
- Got the e-mail MAIL:priority attribute working. It stores it as a text string, perferably the standard 1 to 5 (high to low) levels. The words High, Normal, Low, Urgent and Non-Urgent may also show up in the attribute depending on which mailer sent the message.
- Added MS Exchange support to IMAP, fixed tons of other IMAP bugs (not that there were any in the first place.... :P)
- Added a status log notification method
December 4 2003 - v2.2.5
- Queries changed to be multivolume, so you can have mail directories (inbox, outbox, draft) on volumes other than /boot.
- Added new error-handling, so there aren't alert boxes. Whooo!
- Fixed all outstanding bugs in IMAP.
- More memory leaks fixed.
- General happiness.
October 12 2003 - v2.2.4
- Fixed IMAP's mailbox look-up routines so that they use LSUB instead of LIST. This fixes a few bugs with certain mail servers, and allows better interoperability with other mail clients on the same account.
- Added the X-Mailer header to satisfy Feature Request 788700.
- Made it so that the message count uses the correct singular/plural form, given the number of messages, in the daemon status window.
- CHECK_MEM build simply does not work with BONE, changed to get it to partially work.
- Fixed a socket handle leak in POP3.
- Fixed the magic non-dissapearing mail bug (when you use the delete-mail option in match header it would leave a temporary file in the inbox).
- Fixed a bug that caused thousands of error messages.
- Fixed a bug that caused RemoteStorageProtocols not to sync on startup.
- Fixed a bug that caused folder names to be appended to paths set by the Match Header filter.
- Some memory leaks fixed.
September 20 2003 - v2.2.3
- Fixed crash in POP3 protocol when the mail server was not reachable (was trying to send a QUIT command over a dead connection).
- Allowed users to drag people files (and other sorts of files) onto the Mail Status window and have them open in the user's preferred mail reader, which, in the case of people files, creates a new message addressed to the person in question.
- More IMAP bug fixes.
- Some memory leak bugs fixed.
- Added a command line script which will go through all your People files and make sure that the e-mail addresses contain valid characters. Useful for bulk e-mailing (the SMTP server will reject the whole batch if one is bad), so look for ValidatePeopleEmails.sh in the Mass Mailing folder.
- Temporary file for incoming mail created in /tmp or now in a local directory, so that the in-box can be on a different drive than /boot. Well, maybe not, all the query stuff still looks on /boot only.
August 20 2003 - v2.2.2
- Automatic index creation changed, use an int for the MAIL:flags, not a string!
- Use a query to find mail to send rather than scanning the Out directory (a certain person keeps thousands of his old files there and was getting annoyed at the time delay for checking mail).
- Fixed some bugs in IMAP, including one that would block ChainRunner's message queue forever.
- Fixed some random bugs in IMAP and made it so MDR doesn't redownload your whole mailbox if it crashes! Now *there* is a feature.
- Fixed window position save in BeMail - last closed window position is used for the window the next time you start BeMail. Got broken when the settings file format got changed.
- Fixed race condition where RemoteStorageProtocol was locking the node, so init was failing in the daemon. So no longer need the long delay before sending mail kludge.
August 3 2003 - v2.2.1
- Changed networking operations to use sockets directly rather than the buggy BeOS network kit.
July 30 2003 - v2.2.0
- Starting a new version for Nathan's second overhaul of the architecture: adding a fancy RemoteStorageProtocol for better IMAP (and others in the future) local vs remote mail folder synchronization.
- Fixed recently added bug in AGMSBayesianSpamServer which wouldn't let you double classify a message, even if the IgnorePreviousClassification option was on.
- Added hack to wait for spell checking dictionaries to load when you start up BeMail with the command line options to create a new message. Avoids the warning about not finding the dictionaries.
July 15 2003 - v2.1.0rc3
- Added Mark Heeren's alternate new mail deskbar icons to the mail daemon resource. They're a blue and red envelope, rather than the empty and full mailbox icon. Use QuickRes to copy them over the existing icons in /boot/beos/system/servers/mail_daemon if you want to use them.
- Fixed AGMSBayesianSpamServer race bug with the classification choices dialog box coming up mangled due to default sizes of controls being zero. Happens when the RefsReceived message gets processed before ReadyToRun has finished setting things up.
- Make Drafts query non-temporary, so it doesn't disappear after a few days. Also split the Today's Mail query into Received Today and Sent Today queries.
- Turn on auto-training by default in the spam filter, at "BiPolar"'s suggestion. Also modified the other default options - spam in subject off (status now shown in window title), leave server running (slow startup with hundreds of thousands of words), cutoffs made more strict (more uncertain messages, fewer errors).
- Added a couple of Japanese translations.
- IMAP bugs fixed, now handles network disconnection better.
- Also stops when it encounters an error while reading message contents from the server, rather than putting up error alerts for each and every remaining message.
- Changed BeMail to use a flattened BMessage for its settings, rather than the unreliable binary dump.
- Added an option to start with spell checking on.
- Added people's names to the auto-complete word list. So if you want to send e-mail to Dane, type a double quote then the first few letters of his name; typing "Da… will expand to "Dane Scott" <dane@somewhere.com>. The usual pure e-mail address expansion is unchanged, typing da… without the quote mark will expand to only dane@somewhere.com. We don't have it include the name since the auto-complete is simple text substitution - would need a fancy post processing stage to figure out the right addresses and full names.
- Found some buffer overwrite bugs in SMTP which prevented some authentication methods from working.
- Moved the Save button furthur from the Send button; "Skiver" didn't like accidentally hitting Send.
July 6 2003 - v2.1.0rc2
- Fixed some IMAP bugs. Not all IMAP servers are the same, or even standard.
- Wipe out the /boot/beos/etc/word_index/ directory when installing, since the corrupt spell checking indices crash BeMail, and they get automatically regenerated if they aren't there.
- Installer now creates the symbolic link /boot/develop/lib/(x86|ppc)/libmail.so which the older installers accidentally deleted.
- Added Robert Paciorek's central beep modification. Use this notification method if you have several e-mail accounts and just want one beep when there's new mail in any of them (rather than separate beeps for each account with new mail). Didn't add his RS232 CTS/RTS signal line toggling code that turns on a light plugged into the serial port - not that many users would use it and it would need preferences changes to choose a serial port, etc. Contact him (http://www.bebits.com/devprofile/2771) if you want the modifications.
- Changed POP protocol to remove the period escape code at the start of a line, rather than having the editor hide it. This avoids slightly incorrect message size counts (two periods should count as one), and lots of other little related off by one problems and partial or missing message problems.
- Fixed multiple send bug. If you create several new messages per second for the same outbound account, it fired off several sender threads, and ended up sending each message several times. The threads fought over access to their configuration files (and other unrelated outbound configuration files for some reason), which often resulted in wiped out account settings and other weirdness. Now uses only one sender thread per account.
- Installer completely regenerates the MIME types for the applications and the data types text/x-email, text/x-partial-email so that the correct icons (particularly the partial e-mail one) show up. So if you had custom attributes registered for e-mail files, you'll have to re-enter them. On a related note, the Daemon now takes a command line argument of "-M" to forcibly delete the old MIME types and rebuild them, plus the existing -E argument that exits immediately if you don't have the auto-run option turned on (so it can be simply started from the boot script).
- Added a command to AGMSBayesianSpamServer to declassify mail, and the related GUI changes. So now if you decide a message shouldn't be in the database, you can change it back to Uncertain status, which will also remove its word counts from the database. Incidentally, I had to make a new dialogue box to choose spam/genuine/uncertain after exceeding the maximum number of buttons (3) for a BAlert. Also changed the logo to remove the reference to SPAM, since Hormel doesn't like having their meat product associated with junk e-mail.
- Added the spam button to BeMail. Click it to train the current message as spam and then delete the message. Right click it to bring up a menu with other training options and long descriptions of what they do (you need to train it on genuine messages too!). Also added spam menu items to the Message menu and a spam status display in the window title bar. The button, menu items, ALT-K hotkey, window title modifications all only show up if you have a spam filter configured in any one of your e-mail accounts.
- For partial e-mail downloads, the spam filter will only auto-train on the partial download, it will ignore the complete message (leaving it classified as before). That's because it doesn't know how to untrain the partial message (doesn't have the old partial message size at that point). Of course, if the spam system isn't in headers only mode, it will read the whole message anyway.
June 26 2003 - v2.1.0rc1
- Added US-ASCII encoding and decoding, which also uses 7bit rather than quoted printable.
- Remove leading and trailing spaces from the thread string (subject minus the Re: etc bits), since some other mail software likes adding a trailing space, which messes up the thread sorting.
- Replace NUL bytes after conversion to UTF-8 with the substitute character. This is because the BeOS ISO-2022-JP to UTF-8 conversion sometimes gets it wrong and inserts a NUL.
- Added an optional alert to warn you if you try to send a message which contains characters unencodable in the currently selected character set.
- More intelligently picks 7bit encoding if there are no 8 bit characters (for all character sets). Also uses 8bit rather than quoted printable for Latin-1, ISO-2022-JP, EUC-KR. Base64 used for SHIFT-JIS and EUC-JP. Quoted printable for all others that have 8 bit data.
- Fixed a crash bug with malformed MIME empty text attachments (had a negative contents length).
- IMAP completely rewritten from scratch. Everything that was bad about the old IMAP is gone. Everything that was good about it is gone too. New goodnesses and badnesses are here (although mostly goodnesses  I hope)
- POP3 massively upgraded for slightly greater speed (gets sizes of all messages in one bulk command, receive buffer size bumped to 10K from 1K), much less CPU usage on slow systems.
- Partial Message Downloading (double click on the message file to finish downloading).
- Reworked the protocol framework. And the add-on framework. And everything else. Except BeMail. AGMS did things to that... I'm scared of it. AGMS is too.
- Miscellaneous really awesome things.
- Spam checker now looks at file names of attachments to see if they are text files, sometimes the MIME type is specified incorrectly by those naughty spammers.
- Added instructions on how to do customized bulk e-mailing.
April 13 2003 - v2.0.1b2
- Make the encoding menu slide around when resizing the window. Can only do it for reading a mail message, not when composing, since pop-up menus don't resize (a BeOS bug).
- Changed encoding to work on a per-word basis to reduce the chance of making words longer than the 75 character RFC2047 limit. Will even split up a Japanese subject line with no spaces into encoded "words" which should get reassembled without spaces.
- Changed header encoding to base64 rather than quoted-printable for Asian languages, for cell phone system compatability.
- Word wrap long header lines so that if you send a message to hundreds of people, the To: header won't go over the 1000 byte line limit.
- Also recognize Content-Disposition: filename="logo.jpg" as specifying the name, though they really should use "name" rather than "filename".
- Removed query "leash" limit of 1024 max e-mail addresses in the typing auto-completion list. Note that as usual the addresses are found via query from files only on the boot volume with the META:email attribute (and META:email[2-5] too), and groups with the META:group attribute.
- Removed 128 item leash on the pop-up email address choice menu, also avoid deadlock when choosing hundreds of names (which used to exceed the message queue size) by batching them up into one operation.
- Add All People menu item, now only people not in any group are listed at the bottom of the pop-up address menu.
- Fixed a PPC (PowerPC CPU version of BeOS) bug in AGMSBayesianSpamServer (atoll wasn't working so word database wasn't read), and changed sound effect format so they work for PPC.
- Also, besides double quotes, don't encode <>,@() in the headers so that the mail system can see them.
- AGMSBayesianSpamServer now shuts down immediately and returns true if it is asked to quit by the registrar. Previously if you left it running, the system shutdown would be cancelled at AGMSBayesianSpamServer.
- Added momoziro's Undo/Redo stack to BeMail. Thanks momoziro!
February 20 2003 - v2.0.1b1
- Yet more Japanese translations, courtesy of Jun Suzki this time.
- Added an international install script feature.
- Fixed crash bug when using Open With…BeMail on people files (was a buffer size bug).
- Add BeOS USer Guide Replacement for the E-mail preferences aaplication.
- Do a "sync" to flush data to disk if any messages received, so that a crash soon after receiving e-mail won't lose data.
- Sort the pop-up lists of e-mail addresses by last name (formerly e-mail address). Also list people in the groups they belong to and in the main list too. Note it uses an n-squared stupid sort algorithm, so it will be slow if you have thousands of People files.
- Added an Encoding menu to chose the character set when sending mail, in case you want to temporarily override the default set in preferences.
- Also have the encoding pop-up menu let you change the character set to use for reading a message, though by default it will automatically determine it.
- Fixed up excessive <<>> around e-mail addresses in list when typing a group name.
February 6 2003 - v2.0.0b9
- Use quoted printable for the headers to avoid base64 extra CRLF insertion which makes a mess if the header (like Subject) is too long to fit on a line.
- Added 7bit and 8bit encoding to the library, and made BeMail use 7bit for ISO-2022-JP (base64 for other Japanese character sets).
- If a header field (CC, Subject, etc) is made empty in BeMail, also remove that header. Was causing a reply (with an automatically generated CC) to get sent to extra people even though the CC seemed to have been erased. Library code changed to accept NULL and empty value strings as meaning remove the header.
- Made install script into a one use script, so you can't accidentally run it twice (it won't work since it moved a lot of the installation files to their final resting places).
- Reduced the size of the spam database from around 1500 messages to just 10 spam and 10 genuine examples (after complaints it was too big). Accuracy will be reduced, but then you can quickly make up for it by training it when it gets it wrong (and even faster with auto-train).
- As requested by "dolgogi" in the BeBits.com talkback, I've added the ksc5601, ks_c_5601-1987 character sets as an alias for euc-kr in incoming mail (they seem to be subsets of euc-kr). Outgoing is always EUC-KR. Also, the output for EUC-KR is sent as 8bit rather than base64 or quoted printable. Sorry, unable to support iso-2022-kr.
- Fixed bug in date parsing (affecting the MAIL:when attribute) where it didn't understand the new numeric +0000 style of time zone.
- Changed file names to be a bit more readable, hopefully avoiding characters which cause problems.
- Avoid having a single period on a line; fix SMTP protocol to insert an extra period on all lines starting with a period. POP protocol should do the opposite, but for now the extra period is hidden by the display code!
- Fixed bug with missing last letter in Japanese headers by forcing it to switch to the Roman character set (could also switch to ASCII, but they are almost the same) at the end of the header.
- Compensate for Yahoo! address inside the name goofyness, find "Joe" for the name when given: "Joe <joe@yahoo.com>" <joe@yahoo.com>
- Added Koki's first batch of Japanese translations for text within MDR.
- Fixed up word wrapping code to fall back to the user's preferred font if the system fixed width font didn't have as many of the characters used in the message. Doesn't depend on character set choice now.
- Added some more queries to the pop-up daemon menu and changed it to largely use a zip file so it will be easier to add new ones: Today's mail, mail from someone, mail with a subject containing something.
January 22 2003 - v2.0.0b8
- Date format changed slightly to make it compliant to RFC-822 (some other mail apps had problems understanding it).
- decode_base64() should now work with single character line breaks as well.
- Changed default spam cutoff ratio to 0.95 to correspond to the default Chi-Squared scoring method.
- Added Uncertain spam classification as suggested by BiPolar. This also means adding a Genuine cutoff number, a new sound effect, change the prefs window, etc.
- Fixed up BeMail to use the user's character set choice (was ignoring it).
- Added a few more character set encodings, including UTF-8 for BeOS native messages.
- Made the character set choice affect the encoding of the Subject, To, CC and other header lines. So now your subject can contain international characters.
- Made it internationalize (using utf-8, no choice) the file attachment headers so file names with weird characters will now work.
- Don't convert words to lower case for spam checking, the case can be an important clue!
- Updated sample spam database: now has capitalized words and includes fresh spam. Old uncapitalized databases won't work as well. Either replace your existing one with the sample one, or be prepared for worse results until more training corrects it.
- Headers in ISO-2022-JP should now appear correctly. Fixed up header encoding so that it also turns on the encoding markers for escapes and control characters, which you see in the 7 bit encodings like ISO-2022-JP (previously it only did them when it found 8 bit characters).
- Missing Japanese text at the end, or garbage characters at the end bug fixed. Increased the conversion buffer size calculation so that the ballooning of text due to the excessive number of escape characters in ISO-2022-JP doesn't run it past the end of the buffer (both body text and headers were affected).
December 13 2002 - v2.0.0b7
- Fixed vman's bug with TABs after the colon in the headers making it ignore the header.
- Fixed the Forwarding with Attachments bug so it now works with X-BFile type attachments.
- Added a couple of forwarding menu items, so you get the complete set on the main menu and the right-click on the Forward button menu.
- Added full set of reply options to the right-click-on-the-reply-button menu.
- Removed old word wrap menu code from BeMail.
- Added a preferences option to attach files in BeMail without the attributes, so that users of other operating systems don't get confused by the extra attachment.
- Fixed some bugs with reading (garbage appended bug) and forwarding text attachments (didn't copy text so it sometimes crashed).
- Include preamble text when making a reply from selected text in a message.
- Added ChiSquared (Greek X is called chi, capital is Χ, lower case is χ) statistical error scoring method to AGMSBayesianSpamServer; you lose the shades of gray and get better spam/genuine/don't-know results instead.
- Reclassifying a message as spam or genuine will now also update the spam ratio attribute (it runs an EvaluateFile on it).
- Subject prefix of [Spam 99.9%] removed from the subject attribute when you evaluate a message (the number would become incorrect, and we can't tell if it is spam since the cut-off value is in the filter client, not the server).
- Implemented self-training mode in the spam filter.
- Load the database when the spam server window is displayed.
- Hide the spam server window so it doesn't flash briefly onto the screen when the program starts up.
December 1 2002 - v2.0.0b6
- Fixed Reply-All bug where it would get stuck in an infinite loop when it tried to remove the sender's address from the list of addresses.
- Forgot to mention spam database was updated in Beta 5 to reflect MIME decoding improvements (base64 text now decoded) and to add new spam examples.
- Fixed Reply-All CC bug where some CCed addresses weren't included.
- Added reply preamble options for full name and date, so you can have something like "Joe Who wrote on December 23 2001 18:33:" inserted in your replies.
- Fixed Draft loading so you get the From, To, CC etc instead of blanks.
- Changed MAIL:draft attribute type to be Int32 to match the index type, also create the index as INT32 (in daemon and BeMail) hopefully stopping the invisible drafts problem. You might have to do a "cd /boot ; rmindex MAIL:draft" command to remove a bad old TEXT index from before (use "cd /boot ; lsindex -l" to see what you have).
November 29 2002 - v2.0.0b5
- Changed readfoldedline and MIME parsing to both handle lines ending in either CRLF (the standard for Internet mail) or LF (sometimes used for local file storage). Also handles EOF and errors better.
- Fixed a bug where an empty message sub-part would cause a crash due to BString UnlockBuffer(0) not working for empty strings. This generally made it crash when it tried to open a malformed message.
- Check for IO errors while writing generic headers and copying existing MIME components.
- New "Reply With" option for the Match Header filter.
- New "Set As Read" option for the Match Header filter.
- Old style name extraction fixed so that StripGook "joe@foo.com (Joe)" will return "Joe" rather than "Jo".
- MessageIO fixed so that it doesn't reread the whole message when doing a SEEK_END, doubles performance when checking for spam!
- Added a close window box in the title bar of the E-mail preferences, acts like the Cancel button.
- Changed AGMSBayesianSpamFilter so that it checks the server's tokenize mode, and if it is JustHeaders then it will only download the headers for spam testing, rather than the entire message.
- Updated AGMSBayesianSpam documentation with a trick for spam checking without downloading the whole message, and explained the word display.
November 20 2002 - v2.0.0b4
- Zillions of bug fixes. Too much to mention, really
- Lots of new features (we will let you have fun discovering them)
- Profuse apologies for waiting so long to release this
- Bayesian Spam Filter included
February 12 2002 - v2.0.0b1
- Serious speed and stability improvements
- Friendly addon names
- Finalized, beautified, and FBC-protected API
- Crash on shutdown bug fixed
- Colored quotes
- Attachments work now :P
- Lots of other things are much better too, but I don't remember them now
November 21 2001 - v2.0.0a2
- Attachments that used not to be handled are handled now.
- HTML emails are displayed as the HTML source.
- Implements all stub functions programs like Postmaster expects (most functions do nothing).
- Mail handling is much faster
- Various API improvements
- Blinking lights support (Notifier)
- Really improved Deskbar menu! Uses NavMenu. Check it out!
- Right-clicking the deskbar replicant while pressing the SHIFT key gives more options
- Central Notification (uses only one Alert for all accounts).
- Changed links for bug reporting and others
- Button to enable configuration of the Deskbar Replicant menu
- Do not crash when opening pre-MDR2 emails
- Reply to Sender
- Reply to all
- Resend/Forward works
- Better Notifier Filter
- Better RuleFilter (Descriptive filter names)
- Better Folder Filter (No more email filename colisions)
- SMTP Auth now works for real
November 06 2001 - v2.0.0 a1
- Complete rewrite from the ground up
- Filters
- BeMail
- IMAP
- SMTP Auth
- POP3 Auth for SMTP
- Sort emails by thread in Tracker
- New Mail Kit
- All sorts of other cool stuff
July 05 2001 - v1.0.0 b5
- Outgoing (SMTP) mail servers are now configured per account.
- Leave messages on server now works as expected.
- You can select your default acount from the Deskbar menu (fixed).
- Add-on loading problem under BONE seems to be fixed now.
- Various other bug-fixes and performance improvements.
June 12 2001 - v1.0.0 b4
- E-mail preferences app completelly rewritten. Now it is cleaner,
more intuitive, and font sensitive! Please send us suggestions for
improving it.
- Added buttons to create/erase accounts.
- The Mail Status window now remembers its size and position.
- Option to never show the Mail Status window.
- More bug fixes. More error checking is now being done.
- First version of the filter API.
- Some brand new bugs for you to play with. :)
- The old mail_daemon icon is back! Thanks to Syn.Terra for it.
June 08 2001 - v1.0.0 b3
- Installation script now creates an index for the MAIL:account
attribute.
- mail_daemon detects if the MAIL:account exists and creates it
if it does not.
- Various bug fixes. *ALL* Deskbar crashes should be gone.
- Improved Deskbar Icon menu.
- Does not check for email immediately after starting.
June 06 2001 - v1.0.0 b2
- Fixed lots of bugs!
- The status window can now be made persistent.
- E-mail preferences app works better (for some definition
of better).
June 05 2001 - v1.0.0 b1
- First public release.
IMPLEMENTATION:
The latest version has the following (interesting) features:
- Add-on based architeture.
- Fully multithreaded.
- POP3 add-on with APOP support.
- SMTP add-on.
- Leave messages on server option, with optional delete messages from
server after deleting local message.
- PPP connection detection.
- Multiple accounts.
- Addition of the Account attribute. The install script indexes it.
- Email Filters
- Timed email retrieval.
- Deskbar replicant with NavMenu.
- The status window can be made persistent.
- Status window remembers its size and position.
- BeMail
- Spam Filter
TODO:
This is a partial list of what we intend to implement. Suggestions are welcome:
- HotMail support.
- Filter description field/attribute
- Read initial account info from old E-mail prefs
- More...
OTHER STUFF:
This program was created by Dr. Zoidberg Enterprises (zoidberg@bug-
br.org.br). Special thanks goes to Todd Lair, Brad Froehle, David Reid,
Rene Gollent and others for helping us with ideas and code. We also would
like to thank the BeOS community in general for their support.
Japanese translation by: Koki (koki@aequus.net) and Jun Suzki.
Testers/advisers of Japanese builds: SHINTA, Koichi Kimura (KiM), Masatsugu
Karino (karino@drycarbon.com), Rie Hatsu (r21e6d1a9f@m02.kyoto-kcg.ac.jp),
ITO Takayuki (yuki@euc.jp),Tanuki, Ryo Hattori, Ichikawa Hirotaka and many others.
The cool new mail-daemon deskbar icon is a courtesy of Syn.Terra.
Copyright (c)2001-2003 by Dr. Zoidberg Enterprises. All rights reserved.
Dr. Zoidberg Enterprises is a joint-venture between Bruno G. Albuquerque
(bga@bug-br.org.br), Nathan Whitehorn (nwhitehorn@qwest.net), Peter Folk
(pfolk@uni.uiuc.edu), Stephan Assmus (stippi@yellowbites.com), Alan Ellis, David Reid,
Axel Dörfler (axeld@pinc-software.de) and Alexander G. M. Smith (agmsmith@rogers.com).

53
src/servers/mail/install.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/sh
base=`dirname "$0"`
cd "$base"
RETURN=`alert "There can only be ONE version of mail_daemon on the system at one time (see the enclosed README file for why).
Choose 'Backup' if you wish to keep your old mail_daemon, E-mail preferences app, and BeMail, and this is the first time you're installing the Mail Daemon Replacement. Otherwise, you should choose 'Purge' to clear the other versions from your system." "Purge" "Backup" "Abort - Don't do anything!"`
if [[ $RETURN = Purge ]]
then
# note: we don't remove libmail.so, because it doesn't matter here, and there may be symlinks and things
query -a 'BEOS:APP_SIG == "application/x-vnd.Be-POST" || BEOS:APP_SIG == "application/x-vnd.Be-mprf" || BEOS:APP_SIG == "application/x-vnd.Be-MAIL" || BEOS:APP_SIG == "application/x-vnd.agmsmith.AGMSBayesianSpamServer"' | grep -v "`/bin/pwd`" | xargs rm -f
elif [[ $RETURN = Backup ]]
then
query -a 'BEOS:APP_SIG == "application/x-vnd.Be-POST" || BEOS:APP_SIG == "application/x-vnd.Be-mprf" || BEOS:APP_SIG == "application/x-vnd.Be-MAIL" || BEOS:APP_SIG == "application/x-vnd.agmsmith.AGMSBayesianSpamServer" || name == libmail.so' | grep -v "`/bin/pwd`" | xargs zip -ym /boot/home/maildaemon.zip
else
alert "No backup will be done. That means it's up to YOU to purge all of your old mail_daemons and ensure that the new version is the only version."
exit -1
fi
if [[ `uname -m` == BePC ]] && test ! -e ~/config/lib/libssl.so; then
RETURN=`alert "You don't seem to have OpenSSL installed, which is required for IMAP." "Get OpenSSL" "I Don't Care"`
if [[ $RETURN = "Get OpenSSL" ]]
then
NetPositive http://www.bebits.com/app/1020 &
fi
fi
quit "application/x-vnd.Be-POST"
quit "application/x-vnd.Be-TSKB"
if [ -n "$TTY" ]
then
unzip -d / install.zip
else
response=`alert "Would you like to automatically overwrite existing files, or receive a prompt?" "Overwrite" "Prompt"`
if [ $response == "Overwrite" ]
then
unzip -od / install.zip
alert "Finished installing" "Thanks"
else
if [ -e /boot/beos/apps/Terminal ]
then
terminal=/boot/beos/apps/Terminal
else
terminal=`query Terminal | head -1`
fi
$terminal -t "installer" /bin/sh "$0"
fi
fi