Yet Another Open Source CRM?

YAOS CRM?

Most developers I know have a million pet projects they’re either working on or would like to work on. For me, one of the many things I wish I had time for was writing a new Customer Relationship Management (CRM) tool. No, I’m not looking to go up against the big boys like SalesForce and SugarCRM, it would be more of a learning project. It seems like most every web developer will at one time write at least one of the following things:

  • Content Management System (CMS)
  • Customer Relationship Management (CRM)
  • Project Management (typically just a Basecamp clone these days)

I’ve done the first two already, and have no desire to do the third, but I have been wanting to have another crack at at CRM tool for a while now. The first one I wrote worked well, was customer support focused and was utilized for years with only minor issues, but the code left a lot to be desired. This new one would mainly be written using tools and technologies I wanted to spend more time with, and would probably consist of some of the following:

  • PHP Framework:
    1. CodeIgniter 2.x
    2. Symfony
    3. ZendFramework
  • PHP ORM:
    1. Doctrine 2.x
    2. RedBean
  • Database:
    1. MySQL
    2. MongoDB
    3. Cassandra
  • Node.js
  • jQuery UI & jQuery Mobile
  • HTML5 & CSS3

Continue reading

Posted in Projects | Tagged , , , , , , , , , , , , | 2 Comments

Email Deliverability: Postmasters – Part 1

Who’s the Postmaster?

ISPs and email providers understand that a lot of commercial email is not unsolicited email. Much of it is actually email that their users have requested, whether it be for a weekly email from a fan club they’re part of, or the status of an order on Amazon. To help this solicited email actually reach their customers, most major ISPs and email providers have a dedicated Postmaster site. Unfortunately, this means the Postmaster is not a person wearing a special hat. What the site actually contains are information and tools designed to help guide companies sending commercial email. Examples of what is included at these sites:

  • Information on Best Practices
  • Email troubleshooting information and tools
  • Support requests for mailers
  • A Postmaster Blog
  • Feedback Loop (FBL) information (this will be covered in a later post)

Continue reading

Posted in Email Deliverability, Postmaster | Tagged , | Leave a comment

Email Deliverability: SPF Records – Part 4

SPF Records – Part 4 – SPF Record Tools

To wrap things up, here are some good online tools for working with and troubleshooting SPF records.

The first one is a DNS lookup tool from ZoneEdit.com. With this tool you simply enter your domain name, and then it shows you what DNS records are currently associated with it. For example, here are the results for EricBrandel.com:

DNS Lookup Results For:
ericbrandel.com
ericbrandel.com. 43200 IN TXT "v=spf1 a/20 -all"
ericbrandel.com. 43200 IN NS ns2.mediatemple.net.
ericbrandel.com. 43200 IN NS ns1.mediatemple.net.
ericbrandel.com. 43200 IN MX 10 mail.ericbrandel.com.
ericbrandel.com. 43200 IN A 205.186.175.192
ericbrandel.com. 43200 IN SOA ns1.mediatemple.net. dnsadmin.mediatemple.net. 2011121303 10800 3600 1209600 43200

The first item is the TXT record that contains the SPF record for this site. As was mentioned earlier, the host for EricBrandel.com, MediaTemple, doesn’t support SPF records. So if you wish to utilize their DNS servers, you have to utilize a TXT record instead. There is no penalty for this, and it’s really just semantics, since a true SPF record still has to contain the v=spf1 starting chunk.

Continue reading

Posted in Email Deliverability, SPF Records | Tagged , | Leave a comment

Email Deliverability: SPF Records – Part 3

SPF Records – Part 3 – Setting Up Your SPF Record

The final post on SPF records will cover creating a record for your domain. In previous posts I had mentioned that the SPF record for EricBrandel.com was the following:

v=spf1 a mx -all

Well, one problem with that: it’s wrong. Let’s look at some email header snippets to see what happens when I send an email to my Gmail and Yahoo accounts (email addresses modified to protect the innocent):

Gmail:
Received-SPF: fail (google.com: domain of XXX@ericbrandel.com does not designate 205.186.172.19 as permitted sender) client-ip=205.186.172.19;
Authentication-Results: mx.google.com; spf=hardfail (google.com: domain of XXX@ericbrandel.com does not designate 205.186.172.19 as permitted sender)
Yahoo:
Received-SPF: fail (domain of ericbrandel.com does not designate 205.186.172.19 as permitted sender)

So what happened? In the SPF record, the address (A) DNS record and the mail (MX) record are specified for approval, but all other hosts should fail (-all). But the A and MX records don’t match the IP address that the email is actually being sent from.

Continue reading

Posted in Email Deliverability, SPF Records | Tagged , | 2 Comments

Email Deliverability: SPF Records – Part 2b

SPF Records – Part 2b – Examples & Use Cases

The first post for Part 2 covered the Mechanisms and Qualifiers that are used to construct an SPF record. If you haven’t read that yet, you may wish to before proceeding. This post will show some examples and explain them in a little bit of detail. One note to remember: these mechanisms are processed from left to right. Each mechanism requires at least a single DNS lookup. It is best to order them from most likely to match to least in order to minimize the overhead.

For reference, here is the original SPF record that is in use by ericbrandel.com. It’s about as simple as it can be:

v=spf1 a mx -all

There are a lot of different things you can do with your domain’s SPF record, but two of the most common are:

  • Include a specific IP address
  • Include a range of IP addresses
  • Include another domain’s SPF record

Continue reading

Posted in Email Deliverability, SPF Records | Tagged , | Leave a comment

Email Deliverability: SPF Records – Part 2a

SPF Records – Part 2a – Mechanisms and Qualifiers

This second part will examine the options available in SPF records and breakdown some example records. I’ve again split these posts up, this time it’s to give the example SPF records a place to live on their own. That post should be up in a couple of hours. Also, if you haven’t read the first part of the article, Email Deliverability: SPF Records – Part 1, which covers the background of SPF records and gives a simple example, you might want to do so before proceeding.

SPF records have two main parts: mechanisms and qualifiers. Mechanisms are the options used to determine if a message has been sent from a valid host. There are a total of eight mechanism types. Qualifiers can be used to modify the action performed based on the mechanism. There are four qualifiers, but in practice only one is used.

Continue reading

Posted in Email Deliverability, SPF Records | Tagged , | Leave a comment

Email Deliverability: SPF Records – Part 1

This post was going to be pretty lengthy, so I am separating it into three parts. The first part will give a quick background on SPF records and provide a simple example of one. The second will delve deeper into the options available and show example records for a variety of setups. The third will give some examples on how to actually implement the records and to test to make sure they are setup properly.

SPF Records – Part 1 – Quick Background and Simple Example

An early problem with spam was that there was no standardized way to tell if an email claiming to be from a domain was actually telling the truth. A variety of email validation systems have been tried, some of them very complex, but a clean and fairly simple method has really come to the forefront. Sender Policy Framework, or SPF, recognized that the person who controls a domain name should have the power to decide who can send emails claiming to be from the domain.

Continue reading

Posted in Email Deliverability, SPF Records | Tagged , | Leave a comment

Email Deliverability: One Last Piece

In the previous post, I mentioned three main areas of focus:

  • SPF, DKIM, FBL, DNS, What The?
  • Befriend the Postmasters and the SpamCop
  • Paid Services

Those three are all very important, but there’s also another important area that needs to be covered: the content and make up of the emails themselves. There are a number of best practices to follow, words to avoid, and even some laws that must be complied with, most notably the CAN-SPAM Act of 2003.

So add that to the list of topics that will be covered. There’s lots to discuss and go over there, but it will be well worth it.

Posted in Email Deliverability | Leave a comment

Email Deliverability

One of the biggest problems a website or business owner can encounter are issues with Email Deliverability. For some, it’s the inability to consistently reach their client list. For others, the problem arises when their website is trying to send information to a new sign up or customer. In either case, you do not want your mail delayed, dumped in your customer’s spam folder, or just never delivered. There are a number of things you can do to greatly increase your rates of delivery.

There are three main areas to focus on when working to improve your deliverability:
Continue reading

Posted in Email Deliverability | Tagged | Leave a comment