Mass Emailing Techniques



Similar documents
UAE Bulk System. User Guide

The Beginner s Guide to G-Lock WPNewsman Plugin for WordPress: Installation and Configuration

Anti-Spam Configuration in Outlook 2003 INDEX. Webmail settings Page 2. Client settings Page 6. Creation date Version 1.2

Marketing Tips. From M R K Development

Anchor s Marketing Glossary and Common Terms

USER GUIDE. PowerMailChimp CRM 2011

How to Create and Send Newsletter Using G-Lock EasyMail

G-Lock WPNewsman WordPress Plugin Reviewer s Guide

BULK MAIL CAMPAIGN RULES

1. Seam Mail Introduction 2. Configuration 3. Core Usage 4. Templating 5. Advanced Features

Top 40 Marketing Terms You Should Know

Copyright 2011 Smart VA Ltd All Rights Reserved.

SMTPSWITCH MAILER V6 FEATURES

Domains Help Documentation This document was auto-created from web content and is subject to change at any time. Copyright (c) 2016 SmarterTools Inc.

INinbox Start-up Pack

James: The Java Apache Mail Enterprise Server

HGC SUPERHUB HOSTED EXCHANGE / 2007 SMART PANEL USER GUIDE

WebCUR ListServ. ListServ Help Manual

Getting started with your tool

! Hints & Tips

Marketing Glossary of Terms

FILTERING FAQ

Create a List. Creating a list is the first thing you should do in your MailChimp account. Follow these two simple steps to create a new one:

At the most basic level you need two things, namely: You need an IMAP account and you need an authorized source.

GUIDE TO MARKETING

1 Accessing accounts on the Axxess Mail Server

Configuring Your Gateman Server

University of Colorado Boulder Colorado Springs Denver Anschutz Medical Campus. CU ecomm Program Marketing Best Practices

G-Lock EasyMail7. Startup Guide. Client-Server Marketing Solution for Windows. To learn more about G-Lock EasyMail7, visit

EnterGroup offers multiple spam fighting technologies so that you can pick and choose one or more that are right for you.

Marketing Do s and Don ts A Sprint Mail Whitepaper

Top 25 Marketing Terms You Should Know. Marketing from Constant Contact

turbosmtp New Dashboard Handbook

Welcome to MailChimp.

Veeam MarketReach User Guide. Automate Your Marketing. Grow Your Business.

Send Your Message to the Masses

Sending an Encrypted/Unencrypted Message. Let's Begin: Log In and Set Up Security Questions. Create Additional ProMailSource Accounts:

6 WAYS TO INCREASE PARTICIPATION THROUGH . Datis Mohsenipour

Create an Campaign. Create & Send Your Newsletter

CONFIGURING FUS ANTI-SPAM

WHITEPAPER. SendGrid Deliverability Guide V2. Everything You Need to Know About Delivering through Your Web Application

Sales Dynamite / Mobile Prospector Jack

Self Service vs. Managed Services

e- storage Mail Archive

Quarantined Messages 5 What are quarantined messages? 5 What username and password do I use to access my quarantined messages? 5

Reporting - Bounce rates

Icebox - Sendio SPAM Filter

5.2.3 Thank you message Bounce settings Step 6: Subscribers 6.1. Creating subscriber lists 6.2. Add subscribers Manual add 6.2.

Marketing Features

MARKETING MODULE OVERVIEW ENGINEERED FOR ENGAGEMENT

GETTING STARTED QUICK GUIDE


Grapevine Mail User Guide

Beginner s Guide to MailChimp

Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Distributor Control Center Private Label/Channel Administrators

BlackBerry Internet Service Using the Browser on Your BlackBerry Smartphone Version: 2.8

DIY Manager User Guide.

Apache James: more than s in the cloud. Ioan Eugen Stan Berlin Buzzwords 2012

XGENPLUS SECURITY FEATURES...

ConvincingMail.com Marketing Solution Manual. Contents

Discovery and Planning

Administrator s and Developer s Guide

The Essential Guide to HTML Design

How To Ensure Your Is Delivered

SpamPanel Reseller Level Manual 1 Last update: September 26, 2014 SpamPanel

Barracuda Spam Control System

Marketing Features

Mailrelay The best marketing solution for your needs

Basic E- mail Skills. Google s Gmail.

Comparison of E-Marketing Solutions for Act!

Inbox Monitor User Guide

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

User Guide for Kelani Mail

MAXMAILER USER GUIDE

SimplyCast emarketing User Guide

10 Essential Marketing Tips To Boost Your Businesses Success

Setting up and controlling

You can attach accounts to this domain name (eg. or which also increases your corporate branding.

Get to the Inbox Ten Top Tips to Maximize Your Deliverability

Hello. If you have any questions that aren t addressed here, feel free to contact our support staff.

ISPs AOL, AOL Web Mail, Yahoo, Hotmail Live, Windows Live and MSN, Gmail, Earthlink, AT&T, Comcast

A D M I N I S T R A T O R V 1. 0

PolyU Staff Service. Mailing List Management. User Guide

SIEBEL MARKETING STAND-ALONE USER GUIDE

Transcription:

Mass Emailing Techniques... This is not about spam! Pascal Robert MacTI

Why? Most of us have to send mass email (newsletter, special offers, reminders, etc.) Sending emails can take some time Have to avoid to be tagged as spam...and we have to manage bounces

Basic tips Put the real name of the recipient in the headers. ERMailDelivery.setFromAddress(from, name) ERMailDelivery.setToAddress(from, name) Sending HTML email? Don t forget to include the plain text version. ERMailDeliveryHTML.setHiddenPlainTextContent() Your CSS should inline, as in : <div style="font-size: 12px; ">My text</div>

Basic tips Send your email to various services (Gmail, Hotmail, anti-spam appliance) and check the headers for spam rating. Example : (25%) BODY: contains URL text "unsubscribe", (10%) URL: contains "unsubscribe" text Check your logs for "blocked using" messages. Avoid spam terms ("unsubcribe" in a link, "open in a browser") in the message.

Basic tips Try to put a (at least) one second delay between each sent email. Don t sort your recipients list by domain. Remove bad addresses for your lists. Summary : your email should look like it s coming from a regular email client.

First way to mass nirvana: ERJavaMail ERJavaMail have a queue system... And with a WOLongResponsePage... You can send email in a separate thread!

First way to mass nirvana public Object performaction() { try { ERMailDeliveryPlainText plaintext = new ERMailDeliveryPlainText(); for (int i = 1; i < 10; i++) { plaintext.newmail(); plaintext.setfromaddress("probert@macti.ca", "Pascal Robert"); plaintext.settoaddress("probert@macti.ca", "Pascal Robert"); plaintext.settextcontent("this is a test."); plaintext.setsubject("this is nirvana! (and a good spammy subject!)"); plaintext.sendmail(false); catch (AddressException e) { e.printstacktrace(); catch (MessagingException e) { e.printstacktrace(); return "OK";

ERJavaMail : Queue Properties Two properties to control the size of the queue : er.javamail.senderqueue.size er.javamail.millisecondswaitifsenderoverflowed Tune the value of those properties by looking at your MTA logs (blacklisting and bounces). I suggest a queue size of 5, and 5000 ms for the next wave.

ERJavaMail : SMTP properties If you need to use SMTP authentification : er.javamail.smtpauth = true er.javamail.smtpuser = user@domain er.javamail.smtppassword = password mail.smtp.starttls.enable = true mail.smtp.starttls.required = false

ERJavaMail : Stats ERMailSender store basic statistics about the queue : memory usage, number of mail sent, number of errors and number of messages currently in the queue. Available with ERMailSender.sharedMailSender().stats()

ERJavaMail : Errors Not only ERJavaMail can track statistics and queue your emails, it also track errors. Errors = errors that your MTA is capable of detecting without sending the email to a remote SMTP server. Works with NSNotificationCenter NSNotificationCenter.defaultCenter().addObserver (..., ERMailSender.InvalidEmailNotification,...) It won t track down errors coming from the recipient s SMTP/MTA server.

DEMO!

ERJavaMail : Bounces To handle bounces, you will have to check the email that the sender you use receive. You should use an account that is used only to send emails from your WO apps. You can use the IMAP and POP3 from JavaMail to fetch the bounces and analyse them.... Or ask someone to fix your list manually :-)

ERJavaMail : IMAP sample code public boolean openimapconnection() { javax.mail.session sessionemail = javax.mail.session.getdefaultinstance (props,null); sessionemail.setdebug(false); imapstore = (IMAPStore)sessionEmail.getStore("imap"); imapstore.connect("imapserver.com", "user", "password"); inbox = (IMAPFolder)imapStore.getFolder("Retours"); inbox.open(folder.read_write); return true; public boolean closeimapconnection(boolean purgedeletedemails) { inbox.close(purgedeletedemails); imapstore.close(); return true; public boolean corrigeerreur(infoerreur info) { if (info!= null) { MimeMessage message = (MimeMessage)inbox.getMessageByUID(info.uidCourriel ()); message.setflag(flags.flag.deleted,true); listeerreurs.removeobject(info); return true; return false;

Next nirvana : mailing lists Some mailing/distribution list software let you subscribe recipients with a API or with a text file. Many advantages : only one email to send, mailing list manager and the MTA take of everything else. And should be more efficient for delivery.... But you can t customize the content per recipient, and bounces handling can be a pain.

Mailing lists : CommuniGate Pro example private CGProCLI cli; public void connection(string adminusername, String adminpassword) { cli = new CGProCLI("mycgp.server.com",106,adminUsername,adminPassword); public void createmailinglist(string listemail, String listowneremail, Hashtable preferences) { cli.createlist(listemail,listowneremail); if ((preferences!= null) && (preferences.size() > 0)) { cli.updatelist(listemail,preferences); public void addsubscriber(string listname, String subscriberemail, String subscriberrealname) { if (subscriberrealname!= null) { cli.list(listname,"subscribe","\"" + subscriberrealname + "\" <" + subscriberemail + ">",true,false); else { cli.list(listname,"subscribe",subscriberemail,true,false);

DEMO!

Third option : campaign monitor systems More recent campaign monitor systems (MailChimp, CakeMail,...) have APIs to create lists and campaigns from external systems. You only need to manage lists and campaigns, marketing can use the tools provided by the provider to send the messages.... But it can cost a couple of $.

Third option : campaign monitor systems MailChimp offer both an XML-RPC or a JSON/HTTP API. Content can be created with their Web interface, or with the API (as a HTML/text string or by providing a URL). The API will check for invalid (badly formatted) email addresses when you subscribe people and send you a list of errors.

Third option : campaign monitor systems MailChimp allow offers web hooks. This allow MailChimp to contact a URL that you specify to get the list of people who unsubscribed or bounces (soft or hard). They also have HTML code to create subscribing forms that you can embed in your pages. Inbox Inspector (extra $) let check your content and layout with multiple mail clients and anti-spam tools.

MailChimp subscribe private IMailChimpServices mcservices = null; private String apikey = "xxxxxxxxxxxxxxxxxxxx"; private String listid = "a212de2a40"; public NSMutableArray<String> subscriberserrors; mcservices = MailChimpServiceFactory.getMailChimpServices(); for (Iterator<? extends Subscribers> itrsubscribers = subscribers.iterator(); itrsubscribers.hasnext();) { Subscribers subscriber = itrsubscribers.next(); if (subscriber.email()!= null) { HashMap<String,String> addresses = new HashMap<String,String>(); addresses.put("email",subscriber.email()); addresses.put("email_type","html"); addresses.put("optinip", "192.168.0.1"); addresses.put("lname", subscriber.lastname()); addresses.put("fname", subscriber.firstname()); emails.add(addresses); HashMap<String, Object> result = mcservices.listbatchsubscribe(apikey, listid, emails, false, true, false); NSLog.out.appendln(result.get("error_count")); NSLog.out.appendln(result.get("success_count")); Object[] errors = (Object[])result.get("errors"); if (errors.length > 0) { for (int i = 0; i < errors.length; i++) { if (errors[i] instanceof HashMap) { subscriberserrors.addobject(((hashmap)errors[i]).get("message"));

DEMO!

Alternatives Apache James. It's a MTA written in Java who offers SMTP, NNTP, POP3 and IMAP services. James Mailets might be a good option to handle bounces. Direct MTA submission (with files). CGP and Postix allow this.