Share By Mail™ User Manual v2.008

Niwot Networks, Inc, 721 9th Ave., Longmont, CO 80501. (303) 772-8664

Introducing ShareByMail™

Installing ShareByMail™

Starting Share By Mail

What Is A Profile?

The Log Window

The Synchronize menu

The sbmconf.txt file

Change Notes

The Share By Mail License Agreement


Introduction to ShareByMail™

Share By Mail is intended for people who need to securely move replicas of files and folder structures from one place to another when email is available at both places.

Our first customer had music libraries at home and work, and wanted to keep the two libraries automatically synchronized.
Setting up a Peer profile between his two locations and a single email address from a web-based email provider, we could meet his needs.

Master and Slave profiles were added for our Printer customers. With a "ToPrinterFromCust" Master profile at the customer site we are sending files to the matching Slave profile at the Printer.

Encryption was added for our Lawyer customers, providing a secure ClientMasterToLawyerSlave profile for getting files to the lawyer and a secure LawyerMasterToClientSlave profile for the return path.


The DEMO and BASIC versions allow the user to specify 2 profiles on each machine.
The PRO and CORPORATE versions will allow additional profiles.
Files of any size may be sent, we have tested 45 megabyte files. New files and modified files in Peer and Master directories are detected by a "You've Got Files!" engine (www.youvegotfiles.com).
Once detected the new or modified file(s) and directories are split, compressed, encrypted, and sent in pieces as email attachments.
The receiving ShareByMail engine reads the email, downloads the attachment, decrypts, decompresses, and joins the file(s) and directories.
Directory listings are exchanged and compared at start-up.
Windowing (a limit to the quantity of email sent at any one time) is used to keep from overloading the intervening mail servers.
We are getting throughput of 1 megabyte per minute with ShareByMail checking the email server once a minute.

The DEMO version expires in 30 days. The BASIC version does not expire. PRO and CORPORATE versions expire in 1 year.

Installing ShareByMail

Start the ShareByMail installer by double-clicking SBM2XXX.exe

You will be asked to agree to the software license and to choose an installation location. The default installation location is C:\Program Files\Niwot\ShareByMail.


Once installed, you will find that ShareByMail starts when you next log in to your machine.
If that is not desired, you may delete the "ShareByMail" shortcut from Start->(All) Programs->Startup

ShareByMail may also be started from Start->(All) Programs->Niwot->ShareByMail or C:\Program Files\Niwot\ShareByMail.
This manual and uninstaller may also be found in Start->(All) Programs->Niwot

Starting ShareByMail

Upon first starting ShareByMail on Windows 98 or ME your screen may be obscured by a Command Prompt window. Reduce this window but do not "Quit" it.

The first ShareByMail screen should look like:



The "Synchronization Process is running" means that the nwtsbm.exe worker application was started.
Machine Name 9999 is an initial value, it will change to a unique value for your machine in a few seconds.
Please configure your Serial Number: File menu -> Config
Please configure the local email address: File menu -> Config
Please configure the SMTP server name: File menu -> Config
Please configure the POP3 server name: File menu -> Config
Please configure a directory to monitor: File menu -> Config


Selecting File menu -> Config brings up the Configuration box:



Fill in the "Serial Number" (Expiring Demo serial numbers are displayed as well.)
Fill in the "Local Email Address", "SMTP Server Name", "POP3 Server Name", "POP3 Password", and "Verify Password" fields.



You may now click on the "New" button next to "Profiles of Directories Monitored". You will see the "Edit Profile" dialog box:



Profile Name: This name provides a description of a unique entity that you are sychronizing, like "MySalesFiles" or "MyMP3Files".

Path: This is the location of the directory to be sychronized, like "C:\Sales" or "D:\MusicFiles". You may click on the "Browse" button next to this field to find the directory.

Remote Email Address: This is the remote email address with which you are sychronizing the directory. You may click on the "Address Book" button to select the email address(es) from a list. Note: This email address should be for an account on a different machine running ShareByMail. This email address can be the same address as the Local Email Address.

Window Size In Megabytes: The size of the email sent window in megabytes. The default value is "3", allowing you to have 3 megabytes of emails outstanding at any one time. We recommend that the number of megabytes not exceed one half the account storage available at the remote email account. This number is between 2 and 20 megabytes.

Hierarchy: The hierarchy of this profile, which can be Peer, Master, or Slave. When Peer is selected, you would want to be communicating with another Peer profile. When Master or Slave is selected, you want to be talking with the opposite type (meaning that Master talks with Slave, or Slave talks with Master).

Enable Encryption: Select this if you wish to use encryption, and enter the encryption password below.

Encryption Password, Verify Password: Enter the encryption password that you wish to use twice. Note: you must use the same encryption password for the profile on this machine and the remote machine running this same profile. BOTH machines must select "Enable Encryption" and BOTH machines must use the same encryption password.

Click OK to close the Edit Profile dialog box, your entry will be shown in the Configuration box:



In the Configuration box, each profile is shown by its name,then
(Peer),(Master),or (Slave) for Peer, Master, or Slave.
The local directory being shared, and the email address of the other machine.

Click Done to close the Configuration dialog box. In a few seconds, the Process window of ShareByMail will show the configuration entries that you just entered.


In approximately one minute, ShareByMail will send a "Publish" to the defined email address. A Publish is a list of files that are contained in the directory being monitored. The remote side which is also running ShareByMail will compare this Publish against its own Publish, and may then ask to synchronize particular files.

Performing the installation and running of ShareByMail on your other machine with a matching profile name will start the synchronization.

What Is A Profile?

The Profile Name is what ShareByMail uses to distinguish between unique entities being synchronized on different computers. The Profile Names on each computer must agree, but the directory being monitored may be different.

A Profile with a matching name on each end specifies:
(1) The local directory to be used.
(2) The password. (if encryption is selected)
(3) The email address and server to be used when sending and receiving emails.
(4) The email address that the other end is using.
(5) Whether the monitored directory is a "Peer", a "Master", or a "Slave".

Consider the following example:

Office Computer
running ShareByMail
with local email address joesmith@myoffice.com
Profile Name:MyMP3Files
Directory:C:\mp3files
Sending Email To:joesmith@myhome.com
 
< - - - >
Home Computer
running ShareByMail
with local email address joesmith@myhome.com
Profile Name:MyMP3Files
Directory:D:\music
Sending Email To:joesmith@myoffice.com


Both of the above computers running ShareByMail know of the Profile Name MyMP3Files. ShareByMail will be synchronizing the files found in C:\mp3files on the office computer with the files found in D:\music on the home computer. The office computer will be sending synchronizing email messages to joesmith@myhome.com, and the home computer will be sending synchronizing email messages to joesmith@myoffice.com.


The Log Window

ShareByMail writes to the Log Window as it sends and receives email messages. When ShareByMail is started, it will send Publish to all Profiles in the configuration:

Thu Oct 02 13:02:02 2003
  "MyMP3Files" sent Publish to joesmith@myhome.com
Thu Oct 02 13:02:03 2003
  "MyPhotos" sent Publish to joesmith@myhome.com


The receiving side of a Publish will display the following message:

Thu Oct 02 13:07:00 2003
  "MyMP3Files" received Publish from joesmith@myoffice.com


If the receiving side has compared its Publish against the incoming Publish and finds that there are no differences, the following message might be displayed:

Thu Oct 02 13:07:00 2003
  "MyMP3Files" received Publish from joesmith@myoffice.com
Thu Oct 02 13:07:00 2003
  "MyMP3Files" takes no action from received Publish


If the receiving side finds that there are differences, it will send a request to receive the new/updated files:

Thu Oct 02 13:08:17 2003
  "MyMP3Files" sent Request to joesmith@myoffice.com for file(s):
  D:\music\BoogieWoogie.mp3


Notice that the file path for the requested file is relative to the local file system. All messages describing files requested, sent, and received will be relative to the local file system.

So now the originating side would receive the request and send the file:

Thu Oct 02 13:09:01 2003
  "MyMP3Files" received Request from joesmith@myhome.com for file(s)
Thu Oct 02 13:09:02 2003
  "MyMP3Files" sent File to joesmith@myhome.com
  C:\mp3files\BoogieWoogie.mp3


And the receiving side will now have the new/updated file:

Thu Oct 02 13:10:15 2003
  "MyMP3Files" received File D:\music\BoogieWoogie.mp3


When the files which SyncFileByMail sends are larger than 1.2MB, they will be split apart on the sending side, sent in pieces, and rejoined on the receiving side. A transaction of this nature from the sending side would look like the following:

Thu Oct 02 13:28:24 2003
  "MyMP3Files" received Request from joesmith@myhome.com for file(s)
Thu Oct 02 13:28:29 2003
  "MyMP3Files" sent File to joesmith@myhome.com
  Amethyst.mp3.1.NNC
Thu Oct 02 13:32:25 2003
  "MyMP3Files" received File Acknowledgement for Amethyst.mp3.1.NNC
Thu Oct 02 13:32:25 2003
  "MyMP3Files" sent File to joesmith@myhome.com
  Amethyst.mp3.2.NNC
Thu Oct 02 13:36:25 2003
  "MyMP3Files" received File Acknowledgement for Amethyst.mp3.2.NNC


And on the receiving side:

Thu Oct 02 13:25:41 2003
  "MyMP3Files" sent Request to joesmith@myoffice.com for file(s):
  D:\music\Amethyst.mp3
Thu Oct 02 13:29:43 2003
  "MyMP3Files" received File Amethyst.mp3.1.NNC
Thu Oct 02 13:29:58 2003
  "MyMP3Files" sent File Acknowledgement for Amethyst.mp3.1.NNC
Thu Oct 02 13:33:42 2003
  "MyMP3Files" received File Amethyst.mp3.2.NNC
Thu Oct 02 13:33:52 2003
  "MyMP3Files" sent File Acknowledgement for Amethyst.mp3.2.NNC
Thu Oct 02 13:33:52 2003
  JOINED: D:\music\Amethyst.mp3


Notice that the sending side transfers the pieces of the file one-by-one, as the receiving side accepts and acknowledges the pieces of the file. At completion, the receiving side has reassembled the pieces into the original file with the "JOINED" message.


The Synchronize menu

The Synchronize menu currently contains two commands:

    Synchronize menu -> Update

Even though ShareByMail will sense when a new file exists or an existing file has been changed, you may wish to force the program to send and receive Publish to/from all configured Profiles. The Synchronize menu -> Update command will force ShareByMail to send Publish to all configured Profiles, and likewise the remote machines will send their Publish to your local machine.

    Synchronize menu -> Full Reset

Cleans up directories and data bases of files in flight and starts over. Also sends a Full Reset to the far side.


The sfbmconf.txt file

# at the start of a line is a comment

# How often to look for local changes to the filesystem
ScanIntervalInMinutes=1

# Set this to 1 if your SMTP server uses AUTH LOGIN
SmtpUsesAuth=

SmtpServerName=mail.usermail.net
Pop3ServerName=mail.usermail.net
Pop3Password=PutYourPop3PasswordHere

# How often to look for incoming email
Pop3ScanIntervalInMinutes=2

# UsernameLong is of the form username@domain.com
Pop3UsernameLong=1

# Change BlatInstalled to 0 if you change your SMTPserver
BlatInstalled=1

SerialNumber=YOURSERIALNUMBER

# MachineName is unique for each of the two machines being synchronized in a Profile
MachineName=0210

FromEmailAddress=niwotc@niwot.com
#
Abc1Profile=stuff
Abc1Dir=D:\New Folder
Abc1Email=niwotd@niwot.com
# The number of megabytes in the sent email window, used to
# limit outstanding emails and aid in email retransmission should
# any emails get lost.
Abc1WindowSizeInMegabytes=4
# Hierarchy, 0=Peer, 1=Master, 2=Slave
Abc1Hierarchy=0
Abc1EncryptionEnabled=0
Abc1EncryptionPassword=


Change Notes

Version 2.008 May 2006 release

1) Update Demo Serial Numbers.

Version 2.007 January 2005 release

1) Fix for high CPU usage when parsing a badly-formed email message from POP3 server.
2) Fix for profiles that are changed "on-the-fly", now handled correctly so that no files are deleted.

Version 2.005 September 2004 Initial release

Initial Module versions:
ShareByMail.exe____version 2.0.0.5 Niwot Networks, Inc. The main user interface program
nwtsbm.exe_________version 2.0.0.5 Niwot Networks, Inc. The main worker program
gbxidn.dll_________version 1.0.3.0 Niwot Networks, Inc.
join.exe___________version 1.0.0.0 Niwot Networks, Inc.
utcdir.exe_________version 1.0.0.4 Niwot Networks, Inc.
rijndael.dll_______version 1.0.0.1 http://www.efgh.com
Blat.exe___________version 2.2.2 http://www.blat.net
zip.exe____________version 2.3 Dec 1999 http://www.info-zip.org
unzip.exe__________version 5.51 May 2004 http://www.info-zip.org


Info-Zip License: Copyright (c) 1990-1999 Info-ZIP. All rights reserved. For the purposes of this copyright and license, "Info-ZIP" is defined as the following set of individuals: Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, Jean-loup Gailly, Hunter Goatley, Ian Gorman, Chris Herborth, Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, Kai Uwe Rommel, Steve Salisbury, Dave Smith, Christian Spieler, Antoine Verheijen, Paul von Behren, Rich Wales, Mike White This software is provided "as is," without warranty of any kind, express or implied. In no event shall Info-ZIP or its contributors be held liable for any direct, indirect, incidental, special or consequential damages arising out of the use of or inability to use this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. Redistributions of source code must retain the above copyright notice, definition, disclaimer, and this list of conditions. 2. Redistributions in binary form must reproduce the above copyright notice, definition, disclaimer, and this list of conditions in documentation and/or other materials provided with the distribution. 3. Altered versions--including, but not limited to, ports to new operating systems, existing ports with new graphical interfaces, and dynamic, shared, or static library versions--must be plainly marked as such and must not be misrepresented as being the original source. Such altered versions also must not be misrepresented as being Info-ZIP releases--including, but not limited to, labeling of the altered versions with the names "Info-ZIP" (or any variation thereof, including, but not limited to, different capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the explicit permission of Info-ZIP. Such altered versions are further prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s).

The ShareByMail License Agreement

license.txt

Niwot Networks, Inc, 721 9th Ave., Longmont, CO 80501.
ShareByMail is a trademark of Niwot Networks, Inc.

Sbmuserman.htm -- last update: May 05, 2006