Archive for the ‘Email Marketing’ Category

Thunderbird + MS Exchange + Google Calendar
+ SMS/Email notifications !

Wednesday, November 4th, 2009

Mozilla Thunderbird with Microsoft Exchange Mail, Calendars, Address Book and Meeting Requests
+
Gmail and Google Calendar integration with Google SMS and Email Notifications.

Operating Systems:

This how-to will work on both Windows and Linux, for this tutorial we use Windows XP and Ubuntu 9.10 (Karmic Koala)

Benefits:

The software we have chosen are Licensed under the GPL (General Public License) it’s absolutely, 100% FREE of charge. It runs on all Operating Systems.
You can now use Thunderbird to search your Microsoft Exchange Address Book, Accept meeting requests, AND in addition, you’ll be able to sync your Calendar
to your Gmail Calendar and receive FREE SMS and Email Meeting Alerts.

Serving Suggestion:

Create a New Calendar, give your team members read/write access to that Calendar. Enable their Mobile Devices to receive SMSs. Now everyone in that team have a Share Calendar, which will notify every one in your team of new events. Viola!

ETA:

30 Minutes

(more…)

Signing Email with Domainkeys and DKIM

Monday, November 2nd, 2009

I am the administrator of several high volume email servers.
All of these servers use Domainkeys and DKIM to sign outgoing emails. I have put together this HOWTO in an effort to make your life a little easier. If you can’t do it, for some reason, hire me, and I’ll set it up for you.

Why do we need Domainkeys and DKIM?

DomainKeys Identified Mail (DKIM) lets an organization take responsibility for a message while it is in transit. The organization is a handler of the message, either as its originator or as an intermediary. Their reputation is the basis for evaluating whether to trust the message for delivery. Technically DKIM provides a method for validating a domain name identity that is associated with a message through cryptographic authentication.

What Operating System Will we be using?

Any Linux Distribution (Ubuntu, Gentoo, RedHat, Centos)

What software will we be using?

dkim-milter
dk-filter
postfix
openssh

Let’s begin,

First we need to install our Postfix server. This you should already have done.

Install dkim-filter

sudo aptitude install dkim-filter

Simply accept the defaults when the installation process asks questions. The configuration will be done in greater detail in the next stage.

Configure dkim-milter

dkim-milter configuration consists of two files:

/etc/dkim-filter.conf
/etc/default/dkim-filter

Use your favorite editor to edit those files. Here’s an example of /etc/dkim-filter.conf file already edited to suit my needs:

# Log to syslog
Syslog                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask                   105 # 'id postfix' in your sheel

# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
Domain                  ubuntu.ro
KeyFile                 /etc/mail/dkim.key # See bellow how to generate and set up the key
Selector                mail

# Common settings. See dkim-filter.conf(5) for more information.
AutoRestart             yes
Background              yes
Canonicalization        simple
DNSTimeout              5
Mode                    sv
SignatureAlgorithm      rsa-sha256
SubDomains              no
#UseASPDiscard          no
#Version                rfc4871
X-Header                no

###############################################
# Other (less-standard) configuration options #
###############################################
#
# If enabled, log verification stats here
Statistics              /var/log/dkim-filter/dkim-stats
#
# KeyList is a file containing tuples of key information. Requires
# KeyFile to be unset. Each line of the file should be of the format:
#    sender glob:signing domain:signing key file
# Blank lines and lines beginning with # are ignored. Selector will be
# derived from the key's filename.
#KeyList                /etc/dkim-keys.conf
#
# If enabled, will generate verification failure reports for any messages
# that fail signature verification. These will be sent to the r= address
# in the policy record, if any.
#ReportInfo             yes
#
# If enabled, will issue a Sendmail QUARANTINE for any messages that fail
# signature verification, allowing them to be inspected later.
#Quarantine             yes
#
# If enabled, will check for required headers when processing messages.
# At a minimum, that means From: and Date: will be required. Messages not
# containing the required headers will not be signed or verified, but will
# be passed through
#RequiredHeaders        yes

Actually /etc/dkim-filter.conf is the most important file. It provides our milter with required information about selector (used for DNS requests and email verifications) and used signing key (the key is used for signing the outgoing emails).

Here’s an example of /etc/default/dkim-filter. This file is used to literally connect the milter to MTA:

# Command-line options specified here will override the contents of
# /etc/dkim-filter.conf. See dkim-filter(8) for a complete list of options.
#DAEMON_OPTS=""
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in dkim-filter.conf
#SOCKET="local:/var/run/dkim-filter/dkim-filter.sock" # Debian default
#SOCKET="inet:54321" # listen on all interfaces on port 54321
SOCKET="inet:8891@localhost" # Ubuntu default - listen on loopback on port 8891
#SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345

In my case, this file needs no additional editing.

Now, to tell the Postfix about the existing milter, and where to connect with it, edit your Postfix main.cf file /etc/postfix/main.cf, and append to it’s content the following data:

# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891,inet:localhost:8892
non_smtpd_milters = inet:localhost:8891,inet:localhost:8892

Key generation for dkim-milter and it’s setup with DNS

Actually it’s not big deal. Generate an OpenSSL RSA key as you do it always, then move it private part to the location you indicated in your /etc/dkim-filter.conf:

openssl genrsa -out private.key 1024
openssl rsa -in private.key -out public.key -pubout -outform PEM
cp private.key /etc/mail/dkim.key

The DNS record should look like this:

mail._domainkey.ubuntu.ro. IN TXT "k=rsa; t=y; p=PpYHdE2tevfEpvL1Tk2dDYv0pF28/f 5MxU83x/0bsn4R4p7waPaz1IbOGs/6bm5QIDAQAB"

Where everything after p= is actually the content of the public key we generated above, public.key. To use it, strip out the comments inside it, this:

-----BEGIN PUBLIC KEY-----

and this:

-----END PUBLIC KEY-------

Startup and testing

Once configuration above was done, the daemon can be started with:

sudo /etc/init.d/dkim-filter start

If it doesn’t start, search the logs for problems and see what it requires more:

grep -i dkim /var/log/mail.log

Also you can test your config file:

dkim-filter -x /etc/dkim-filter.conf

If you get the error like: dkim-filter: milter socket must be specified Then try manually specifing the socket, in our case it is local:

dkim-filter -x /etc/dkim-filter.conf -p local

Now restart the Postfix MTA, and check for email signing:

/etc/init.d/postfix restart
/etc/init.d/postfix restart

For testing purposes, I recommend you tools like:

* http://www.sendmail.org/dkim/tools
* or just send an email to autorespond+dkim[at]dk.elandsys.com

Open Source at Buyx Online

Thursday, October 29th, 2009

As one of my first posts on our shiny new website, I thought I’d highlight some of the technologies we use. Many of them, if not most, are licensed under some or another Open License, such as the GNU Public License.

To give you an example, Linux, is Open Source. The meaning Open Source, literally means that the application’s Source Code is available to anyone. This is an important fact. Another term to describe Open Source, is “Free Software”.

“Open Source” and “Free Software” in this context mean’s, that you are “Free” to change the code of the application. It does not refer to the price of the software. That said, many Open Source software are absolutely Free, it does not cost anything, and you are Free to change the source code.

Now, many people are not familiar with the Development Process that Software follows, and Open Source are no different. Code gets written, checked into a “Version Control” server, where some other developers “Check-out” the code, and then make changes to that code, it could be improvements, or bug fixes. That code is then again “Checked into” a “Version Control” server where the process get’s repeated.

What the above means is that Open Source code is generally very stable, and secure, and has been worked on by many people, until finally, you, the end user, can download and install the program. Examples of such programs are,

Firefox, Open Office, Java, Gimp Image Editor, Ubuntu Linux and many more ..

We at Buyx Online use Open Source applications. In fact, Open Source plays a pivotal role at Buyx Online. All our servers run Ubuntu Linux, our Database Servers run MySQL, and our Web Servers run Apache.

Our eCommerce websites are build on Magento eCommerce Platform, running on the Zend Framework. Absolutely the latest and gratest.

Our Monitoring solution, runs on an encrypted laptop, it’s only accessible to our Systems Administrators, the application runs on Nagios Network Monitor and Cacti RRD Graphs.

Over the next couple of weeks we’ll be posting more articles, and take a look at each solution in depth