[[ShowPath]] [[PageOutline]] = Email2trac on Windows = Using email2trac on Windows requires three components: 1. A way to receive/gather email 2. The email2trac script 3. a script or batch file that will schedule email2trac to process emails (i.e. automate the process). == Email component == Options for email component depend on whether Trac is installed on a server that already handles email. * Trac server doesn't handle email: Two common options are to install the built-in SMTP server or to use an email client such as Fetchmail. * Trac server handles email (SMTP already in use): Depending on email software, you may be able to configure the server to drop emails in a folder. Otherwise, use an email client such as Fetchmail. * Trac server runs Microsoft Exchange: Exchange has no easy option to drop emails in a folder, you must use an email client such as Fetchmail. === Built-in Windows SMTP server === Install the SMTP server, but not the POP server, so that emails are received and left as files in the "drop" folder. This is the way the email server hands off email between the two services. In a way, email2trac performs the distribution functions normally handled by POP. To install the SMTP service via Windows Components: * Open Add/Remove Programs (Start->Control Panel->Add or Remove Programs) * Click Add/Remove Windows Components in the left-hand bar. Use the "Details..." button to drill into Application Server->Internet Information Services (IIS)->SMTP Service. * Check the box next to SMTP Service, click "OK", "OK", "Next", "Finish". The SMTP Service should be configured to receive emails out of the box. If you have problems, check that the service is running (Start->Control Panel->Admistrative Tools->Services), and set any software firewalls to allow incoming connections to port 25. Additional configuration can be done using the IIS Manager (Start->Control Panel->Admistrative Tools->Internet Information Services (IIS) Manager). Default configuration of "Default SMTP Virtual Server": * Domains * Domain Name: trac-server.domain.com * Type: Local (Default) * Drop folder: C:\Inetpub\mailroot\Drop * Many more options under "Default SMTP Virtual Server", right-click, "Properties". In this configuration, anything sent to an email address with the trac-server subdomain (xxx@trac-server.domain.com) should be automatically forwarded from the email server to the local SMTP server. If you would like your Trac email address to be formatted differently, you will need to configure your main email server to forward mail sent to your designated Trac email address to the trac-server subdomain. You may need to configure your main email server if it does not properly forward emails to your Trac server. === Fetchmail === [http://fetchmail.berlios.de/fetchmail-man.html Fetchmail] requires [http://cygwin.com Cygwin], a Linux-emulation layer, to operate on Windows. Cygwin installation is straight forward as is adding the fetchmail package, but [http://lifehacker.com Lifehacker's] [http://lifehacker.com/software/top/geek-to-live--introduction-to-cygwin-part-i-179514.php Introduction to Cygwin] and [http://lifehacker.com/software/gmail/geek-to-live--back-up-gmail-with-fetchmail-235207.php Fetchmail] articles are very helpful tutorials for getting Cygwin installed and adding the fetchmail package. Fetchmail options can be set in the command line or using a .fetchmailrc configuration file, .fetchmailrc. Sample .fetchmailrc file: {{{ poll mail.domain.com with proto IMAP, auth ntlm user "trac@domain.com" with password "xxx" is trac here options keep mda "C:/python25/python.exe C:/projects/email2trac/email2trac.py" }}} .fetchmailrc should be put in a location accessible to fetchmail, such as /home/trac (Cygwin path). Note that in this setup, email2trac acts as the MDA (or MTA) and automatically processes mail as it is retrieved. == Email2trac Script Setup == Obtain a copy of the script, either by downloading the [ftp://ftp.sara.nl/pub/outgoing/email2trac.tar.gz latest stable source] or getting the latest [https://subtrac.sara.nl/oss/email2trac/browser/trunk trunk] or [https://subtrac.sara.nl/oss/email2trac/browser/tags/0.13 tagged] version. Unlike in a *nix environment, email2trac on Windows does not have to be built or packaged to work. Only the following files are needed: * email2trac.py.in * delete_spam.py.in * email2trac.conf Put these files in the directory of your choice, e.g. C:/projects/email2trac. Rename email2trac.py.in to email2trac.py and delete_spam.py.in to delete_spam.py. A couple edits are necessary for email2trac.py to work in the Windows environment. 1. Specify the email2trac configuration file path (around line 1060 in version 0.13). The specificity of the path required depends on how you are retrieving emails -- if you are using fetchmail, you will need to specify the complete path (i.e. C:/projects/email2trac/email2trac.conf). {{{ #configfile = '@email2trac_conf@' configfile = 'email2trac.conf' }}} 2. (For versions prior to 0.13 only) Comment out the syslog import (around line 95 in version 0.10). {{{ #import syslog }}} === Email2trac Configuration === There are many [https://subtrac.sara.nl/oss/email2trac/wiki/Email2tracConfiguration configuration options] for email2trac, but the following are necessary for email2trac to work properly. {{{ project: C:\projects\trac\environmentname tmpdir: C:\tmp ticket_update: 1 python_egg_cache: C:\Python25\Scripts trac_version: 0.11 }}} The tmpdir can be anything, but should already exist; be sure the user who will run email2trac has write permissions to this directory. The trac_version variable is important if you're running trac 0.11 so that you don't receive an error like "str object is not callable". See [https://subtrac.sara.nl/oss/email2trac/ticket/34] for more information about the background of this one. == Process Automation == Use Scheduled Tasks to automate email2trac. This works in two parts: a batch file (dependent on email setup) and a scheduled task to run said batch file at regular intervals. === Batch for Built-in Windows SMTP server === Create a batch file (e.g. C:/projects/email2trac/email2trac.bat) to process emails in the "drop" folder. {{{ @echo off for %%f in (C:\Inetpub\mailroot\Drop\*.eml) do python email2trac.py < %%f del C:\Inetpub\mailroot\Drop\*.eml }}} Change the paths as necessary to reflect your setup. This version assumes email2trac.py is in the same directory as the batch file and python is in your PATH. === Batch for Fetchmail === Create a batch file (e.g. C:/projects/email2trac/email2trac.bat) that calls fetchmail, specifying the path to the fetchmail configuration file and, optionally, a logfile to log the fetchmail process. {{{ C:\cygwin\bin\fetchmail -v --fetchmailrc C:/cygwin/path/to/fetchmailrc --logfile c:/projects/email2trac/fetchmail.log }}} === Scheduled Task === The Scheduled Task Wizard is pretty straightforward, but the repetition settings are pretty buried. To create the Scheduled Task: 1. Start the Scheduled Task Wizard(Start > Control Panel > Scheduled Tasks > Add Scheduled Task). Click "Next >". 2. Use "Browse..." to select the batch file you just created as the program you wish to run. 3. Give the task a name, select "Daily". Click "Next >". 4. Set "Start time:" to 12:00 AM, "Perform this task:" to "Every Day", "Start date:" to current date. Click "Next >". 5. Enter a user. I had problems running the task as the unprivileged user that runs tracd, so I set myself as the user (definitely not as secure, but our Trac is on our local intranet). Click "Next >". 6. Check "Open advanced properties..." and click "Finish". The edit task dialog will pop up. 7. Click "Schedule" tab, then "Advanced...". 8. Check "Repeat task", set "Every:" to your desired interval. Set "Duration:" to 24 hours. 9. Click "OK", "OK" to close the dialogs. Test your task by right-clicking it and selecting "Run". You should see a command-line window briefly appear running your batch file. Check your Trac to make sure you have new tickets. ---- Note: This content came from [http://groups.google.com/group/trac-users/browse_thread/thread/6877a04f2d5ff2cb/ a discussion] on the Trac Users Group. Also, see [http://functionalelegant.blogspot.com/2008/03/email2trac-on-windows.html Matthew's summary]. A big thanks to Matthew Carlson for his detailed help. Authored by Nicole Swan (nicole DOT swan AT gmail.com) and Matthew Carlson (calrsom AT gmail.com).