Thursday, May 27, 2010

JangoSMTP now supports SSL/TLS

JangoMail has added support for SSL connections to our relay server from your email client of choice (e.g. Outlook, Thunderbird, Mac Mail, etc.). Just as when you use an HTTPS connection to connect to a website and make a secure online purchase, you can use the same technology to setup a secure connection with JangoMail and send email through your JangoSMTP account. This ensures your JangoSMTP username and password remain secure as they are transmitted between your computer and JangoSMTP relay servers. All that's needed to enable this feature a quick settings change in your email client.

Note: These instructions assume you already have your JangoSMTP account setup in your mail client. Follow these directions if you don't already have your mail client setup to send through your JangoSMTP account.

Outlook:

  1. Click on Tools -> Account Settings
  2. Highlight your JangoSMTP account and click Change...
  3. Click More Settings...
  4. Go to the Advanced tab
  5. Choose SSL in the Use the following type of encrypted connection: dropdown
  6. Change the Outgoing server (SMTP) port number to 465




Thunderbird:

  1. Go to Tools -> Account Settings
  2. Click Outgoing Server (SMTP)
  3. Choose the entry for relay.jangosmtp.net and click Edit
  4. Check the Use Secure Connection box and choose SSL/TLS from the Connection security dropdown



Mac Mail:

  1. Go to Mail -> Preferences
  2. Click on the Accounts tab
  3. Choose your JangoSMTP account at the left
  4. Click on Edit Server List... from the Outgoing Mail Server (SMTP) dropdown
  5. Select the entry for relay.jangosmtp.net and click on the Advanced tab
  6. Put a check next to Use Secure Sockets Layer (SSL)
  7. Select Use custom port and enter 465 as the value



Most modern email clients support SSL/TLS. If your email client is not listed above, open up your account settings configuration page and find the outgoing email server connection settings. The option you want to enable will be called SSL/TLS (not STARTTLS). Also look out for a default connection port. Generally this port number will be 25 or 2525 before you setup SSL/TLS, but it should be changed to 465 after the feature is setup. When in doubt, submit a support ticket and a member of the JangoSMTP support team will be able to assist you in choosing the right options.

Wednesday, April 21, 2010

Three Bug Fixes to SMTP Service

We've deployed three bug fixes to JangoMail's SMTP Server, relay.jangosmtp.net. These three bugs were detected by customers relaying emails with eccentric attributes through the SMTP server.

1. Emails containing MIME boundaries with parentheses will now be properly handled.

Previously, emails with parentheses in the MIME boundaries, such as a boundary like:

Content-Type: multipart/mixed; boundary="nqp=nb64=()BDXjw0yWx"

would cause the JangoSMTP parser to throw an error. This is now fixed.

2. Emails containing unrecognized Content-Transfer-Encoding types will now default to "7bit".

Previously, if an email message contained an unrecognized or misspelled encoding type, like:

Content-Transfer-Encoding: 7 bit

would cause the JangoSMTP parser to throw an error. This is now fixed.

3. Emails containing foreign characters encoded as ISO-8859-1 will be properly handled.

Previously, an email containing certain foreign characters would have those characters replaced with ? marks or garbled when passed through the relay. For example, a Subject like:

Subject: Confirmation d'Inscription à la Liste de Diffusion - Liste TEST ML

would not have its foreign characters preserved. This is now fixed.

Saturday, March 27, 2010

SMTP Relay Server Enhancements

We've deployed a couple of enhancements and bug fixes to the SMTP service.

  1. MIME encoded Subject lines containing a Transactional Group are now handled properly.

    According to the SMTP MIME specification, certain email headers can be MIME encoded. It's called the encoded-word syntax. For example, the Subject of an email might actually look like:

    Subject: =?utf-8?Q?Savings_For_Today{Daily_Alert}?=

    This represents a subject that is character-encoded as UTF-8 and content-transfer-encoded as quoted-printable. This Subject, properly rendered by an email client would look like:

    Subject: Savings for Today{Daily Alert}
    For the purposes of the JangoMail SMTP Server, the subject can contain the Transactional Group that the message should be assigned to in curly brackets. So if this message was relayed through relay.jangosmtp.net, then the actual Subject would be "Savings for Today", and this message would be assigned to the Transactional Group "Daily Alert" in the user's account. Previously, our system was not decoding the Subject properly in order to determine the correct Transactional Group name to which to assign the email, but that has now been corrected in today's release.
  2. If the Sender header is specified in the original email, that header is now preserved.

    The Sender header, similar to the From header of an email, can be used to denote additional information about where the email originated. Most email messages do not contain a Sender header, but in some cases, a Sender header is inserted by an email system if the user is using a From Address not local to that particular email system. For example, GMail users who send "from" an address other than their gmail.com address will have a Sender header inserted into the email where the Sender header equals the gmail.com address and the From address equals the user's chosen From Address.

    On the receiving side, some email clients will show the Sender header as a phrase to the email recipient, saying "From [From Address] On Behalf Of [Sender Address]"

    Previously, if an email was relayed through the relay server that included a Sender header, the Sender header would be discarded by our system and not included in the final email message. Now, the system is preserving the Sender header.

Why you can't connect to the SMTP relay server

We often get inquiries from customers telling us that they're unable to relay emails through relay.jangosmtp.net. Here is a list of the most common reasons why it doesn't work.
  1. Your Internet Service Provider (ISP) is blocking access to external email servers. By default, the SMTP server listens on port 25, and many ISPs block connections on port 25 in order to prevent you from emailing through an external email server. For this reason, our SMTP server also listens on port 587 and 2525. You can also connect securely over SSL/TLS on port 465. You can test connectivity from a Command Prompt by typing:

    telnet relay.jangosmtp.net 25



    Successfully connecting to relay.jangosmtp.net


    If that doesn't work, try:

    telnet relay.jangosmtp.net 2525

    You should get a response from the server as shown in the screenshot above.
  2. You haven't setup a proper authentication method. In order to relay emails through relay.jangosmtp.net, you must login to your account, go to Settings --> SMTP Relay, and authenticate either by IP Address or Username/Password.
  3. You are connecting to the wrong server. We've had customers attempt to connect to relay.jangosmtp.com, relay.jangomail.com, and relay.jangomail.net, all of which are incorrect. The correct server is relay.jangosmtp.net.
  4. You are manually inputting SMTP commands in order to complete a SMTP transaction. Unfortunately, unless you manually input the data for a proper and well-formed email message, including a Subject and a Message, our system will discard it.
How do you know if your email goes through the relay server properly? You will see your email almost instantly in Reporting after you send it.

Friday, March 19, 2010

New API method to retrieve SMTP log files

Several years ago, we were the first email service provider to provide access to SMTP logs for email marketing campaigns. Now we're the first to provide access to SMTP logs via an API. Today we have launched the method Reports_GetSMTPLog to retrieve the SMTP log for a given email address for a given email campaign. Just pass in the campaign ID and the recipient email address.

This method only retrieves SMTP logs for broadcast email marketing campaigns. We are working on a method to retrieve SMTP logs for transactional email messages as well, but this poses some challenges not seen with broadcast campaigns. For example, while broadcast campaigns generally don't have duplicate email addresses, it is very possible that in a Transactional Group's email messages, a single email address has received multiple transactional messages over time. Thus, simply passing in a Transactional Group Name and an email address won't suffice for retrieving the log, since the API needs to be able to determine the time range of logs to search in order to display them to the caller.
  • Reports_GetSMTPLog
    Returns the SMTP log for a specified recipient of a specified email campaign
  • Thursday, March 18, 2010

    Two new API methods to change Group names

    We have deployed two new API methods. Groups_Rename allows you to change the name of an Email Group (aka Email List). And TransactionalGroups_Rename allows you to change the name of a Transactional Email Group.





    Both of these methods were the request of a client.
  • TransactionalGroups_Rename
    Renames a transactional group. Returns a String.


  • Groups_Rename
    Renames a group. Returns a String.
  • Thursday, February 25, 2010

    Five new API methods

    We've added the following five API/web service methods to improve our transactional email capabilities. All were requested by prospects evaluating JangoMail. Do you have a request for an API method that would make your developer's life easier? Let us know by filling out our Support form.

    Click each method name to use its corresponding test form.


  • Reports_GetBouncesByTransactionalGroup_XML
    Retrieves list of bounced addresses for a particular transactional group. Includes SMTP Diagnostic Code and Definitive columns. Returns an XML document.





  • Reports_GetBouncesByTransactionalGroup_String
    Retrieves list of bounced addresses for a particular transactional group. Includes SMTP Diagnostic Code and Definitive columns. Returns a string.





  • Reports_GetBouncesByTransactionalGroup_DataSet
    Retrieves list of bounced addresses for a particular transactional group. Includes SMTP Diagnostic Code and Definitive columns. Returns a .NET DataSet.





  • DeleteTransactionalGroup
    Deletes a transactional group from account. Returns a string.





  • GetTransactionalGroupID
    Gets a transactional group id. Returns a string.