diff --git a/libs/mail.jar b/libs/mail.jar
deleted file mode 100644
index 300f436ad2acd89a8f223f9260751f65ecb93c12..0000000000000000000000000000000000000000
Binary files a/libs/mail.jar and /dev/null differ
diff --git a/src/net/sf/briar/plugins/email/GmailPlugin.java b/src/net/sf/briar/plugins/email/GmailPlugin.java
deleted file mode 100644
index 8787e7ee3d0ba81a30e92a6c7eec3c9fe3342b4b..0000000000000000000000000000000000000000
--- a/src/net/sf/briar/plugins/email/GmailPlugin.java
+++ /dev/null
@@ -1,295 +0,0 @@
-package net.sf.briar.plugins.email;
-
-import static java.util.logging.Level.WARNING;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.Executor;
-import java.util.logging.Logger;
-
-import javax.activation.DataHandler;
-import javax.activation.DataSource;
-import javax.mail.Authenticator;
-import javax.mail.Flags;
-import javax.mail.Flags.Flag;
-import javax.mail.Folder;
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.NoSuchProviderException;
-import javax.mail.PasswordAuthentication;
-import javax.mail.Session;
-import javax.mail.Store;
-import javax.mail.Transport;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-import javax.mail.search.FlagTerm;
-import javax.mail.util.ByteArrayDataSource;
-
-import net.sf.briar.api.ContactId;
-import net.sf.briar.api.TransportConfig;
-import net.sf.briar.api.TransportProperties;
-import net.sf.briar.api.plugins.simplex.SimplexPlugin;
-import net.sf.briar.api.plugins.simplex.SimplexPluginCallback;
-import net.sf.briar.api.plugins.simplex.SimplexTransportReader;
-import net.sf.briar.api.plugins.simplex.SimplexTransportWriter;
-import net.sf.briar.api.protocol.TransportId;
-import net.sf.briar.util.StringUtils;
-
-class GmailPlugin implements SimplexPlugin {
-
-	private static final byte[] TRANSPORT_ID = StringUtils
-			.fromHexString("57ead1961d2120bbbbe8256ff9ce6ae2"
-					+ "ef5535e44330c04cedcbafac4d756f0c"
-					+ "e8dd928ed1d7a9e7b89fd62210aa30bf");
-	private static final TransportId ID = new TransportId(TRANSPORT_ID);
-	private static final Logger LOG =
-			Logger.getLogger(GmailPlugin.class.getName());
-
-	private final Executor pluginExecutor;
-	private final SimplexPluginCallback callback;
-
-	public GmailPlugin(Executor pluginExecutor, SimplexPluginCallback callback) {
-		this.pluginExecutor = pluginExecutor;
-		this.callback = callback;
-	}
-
-	public TransportId getId() {
-		return ID;
-	}
-
-	public String getName() {
-		return "GMAIL_PLUGIN_NAME";
-	}
-
-	public void start() throws IOException {
-		pluginExecutor.execute(new Runnable() {
-			public void run() {
-				connectIMAP();
-			}
-		});
-	}
-
-	private void checkUnreadEmails(Folder inbox) {
-		try {
-			FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
-			Message msg[] = inbox.search(ft);
-			for(final Message message : msg) {
-				callback.readerCreated(new SimplexTransportReader() {
-
-					public InputStream getInputStream() throws IOException {
-						try {
-							return message.getInputStream();
-						} catch(MessagingException e) {
-							if(LOG.isLoggable(WARNING))
-								LOG.warning(e.toString());
-						}
-						return null;
-					}
-
-					public void dispose(boolean exception, boolean recognised)
-							throws IOException {
-						try {
-							message.setFlag(Flag.DELETED, recognised);
-							message.setFlag(Flag.SEEN, recognised);
-						} catch(MessagingException e) {
-							if(LOG.isLoggable(WARNING))
-								LOG.warning(e.toString());
-						}
-					}
-				});
-			}
-		} catch(MessagingException e) {
-			if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
-		}
-	}
-
-	private void connectIMAP() {
-		Properties props = new Properties();
-		props.setProperty("mail.store.protocol", "imaps");
-		final ArrayList<String> userPass = getAuthenticationDetails(callback
-				.getConfig());
-		if(userPass != null) {
-			try {
-				Session session = Session.getInstance(props, null);
-				Store store = session.getStore("imaps");
-				store.connect("imap.gmail.com", userPass.get(0),
-						userPass.get(1));
-				Folder inbox = store.getFolder("Inbox");
-				inbox.open(Folder.READ_ONLY);
-				checkUnreadEmails(inbox);
-			} catch(NoSuchProviderException e) {
-				if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
-			} catch(MessagingException e) {
-				if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
-			}
-		}
-	}
-
-	public boolean connectSMTP(ContactId cid) {
-		boolean sent = false;
-		if(discoverContactEmail(cid) != null) {
-			Properties props = new Properties();
-			props.put("mail.smtp.host", "smtp.gmail.com");
-			props.put("mail.smtp.socketFactory.port", "465");
-			props.put("mail.smtp.socketFactory.class",
-					"javax.net.ssl.SSLSocketFactory");
-			props.put("mail.smtp.auth", "true");
-			props.put("mail.smtp.port", "465");
-
-			final ArrayList<String> userPass =
-					getAuthenticationDetails(callback.getConfig());
-
-			if(userPass != null) {
-				Session session;
-				session = Session.getInstance(props,
-						new Authenticator() {
-					protected PasswordAuthentication getPasswordAuthentication() {
-						return new PasswordAuthentication(
-								userPass.get(0), userPass.get(1));
-					}
-				});
-				sent = sendMessage(session, cid);
-			}
-		}
-		return sent;
-	}
-
-	private boolean sendMessage(Session session, ContactId cid) {
-		ByteArrayOutputStream outputStream = null;
-		try {
-			Message message = new MimeMessage(session);
-			TransportProperties props = callback.getLocalProperties();
-			String userEmail = props.get("email");
-
-			message.setFrom(new InternetAddress(userEmail));
-			message.setRecipients(Message.RecipientType.TO,
-					InternetAddress.parse(discoverContactEmail(cid)));
-			message.setSubject("Test Subject");
-
-			outputStream = new ByteArrayOutputStream();
-
-			callback.writerCreated(cid, new SimplexTransportWriter() {
-
-				public boolean shouldFlush() {
-					return false;
-				}
-
-				public OutputStream getOutputStream() throws IOException {
-					return null; // FIXME
-				}
-
-				public long getCapacity() {
-					return 0; // FIXME
-				}
-
-				public void dispose(boolean exception) throws IOException {
-					// FIXME
-				}
-			});
-
-			byte[] bytes = outputStream.toByteArray();
-			DataSource dataSource = new ByteArrayDataSource(bytes,
-					"application/octet-stream");
-
-			MimeBodyPart messageBodyPart = new MimeBodyPart();
-			messageBodyPart.setDataHandler(new DataHandler(dataSource));
-
-			MimeMultipart mimeMultipart = new MimeMultipart();
-			mimeMultipart.addBodyPart(messageBodyPart);
-
-			message.setContent(mimeMultipart);
-
-			Transport.send(message);
-
-			return true;
-		} catch(MessagingException e) {
-			return false;
-		} finally {
-			if(outputStream != null) {
-				try {
-					outputStream.close();
-					outputStream = null;
-				} catch(Exception e) {
-					if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
-				}
-			}
-		}
-
-	}
-
-	public void stop() throws IOException {
-		synchronized(this) {
-			// FIXME: Close open connections
-		}
-	}
-
-	public boolean shouldPoll() {
-		return false;
-	}
-
-	public long getPollingInterval() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void poll(Collection<ContactId> connected) {
-		throw new UnsupportedOperationException();
-	}
-
-	/*
-	 * Gets the user's authentication details ArrayList.get(0) = username,
-	 * ArrayList.get(1) = password, or null if either value is null.
-	 */
-	private ArrayList<String> getAuthenticationDetails(TransportConfig config) {
-		try {
-			ArrayList<String> usernamePass = new ArrayList<String>();
-			usernamePass.add(0, config.get("username"));
-			usernamePass.add(1, config.get("password"));
-			if(usernamePass.get(0) != null && usernamePass.get(1) != null) {
-				return usernamePass;
-			} else {
-				return null;
-			}
-		} catch(Exception e) {
-			return null;
-		}
-	}
-
-	/*
-	 * Looks up the contact's email address given the contactID
-	 * 
-	 * @param ContactId
-	 * 
-	 * @return String email
-	 */
-	private String discoverContactEmail(ContactId cid) {
-		try {
-			Map<ContactId, TransportProperties> remote =
-					callback.getRemoteProperties();
-			TransportProperties tp = remote.get(cid);
-			if(tp != null) {
-				String address = tp.get("email");
-				return address;
-			} else {
-				return null;
-			}
-		} catch(Exception e) {
-			return null;
-		}
-	}
-
-	public SimplexTransportReader createReader(ContactId c) {
-		return null;
-	}
-
-	public SimplexTransportWriter createWriter(ContactId c) {
-		return null;
-	}
-}
diff --git a/src/net/sf/briar/plugins/email/GmailPluginFactory.java b/src/net/sf/briar/plugins/email/GmailPluginFactory.java
deleted file mode 100644
index 1057b80c03399912c434d14afa671311aa3fdb7f..0000000000000000000000000000000000000000
--- a/src/net/sf/briar/plugins/email/GmailPluginFactory.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package net.sf.briar.plugins.email;
-
-import java.util.concurrent.Executor;
-
-import net.sf.briar.api.android.AndroidExecutor;
-import net.sf.briar.api.lifecycle.ShutdownManager;
-import net.sf.briar.api.plugins.simplex.SimplexPlugin;
-import net.sf.briar.api.plugins.simplex.SimplexPluginCallback;
-import net.sf.briar.api.plugins.simplex.SimplexPluginFactory;
-import android.content.Context;
-
-public class GmailPluginFactory implements SimplexPluginFactory {
-
-	public SimplexPlugin createPlugin(Executor pluginExecutor,
-			AndroidExecutor androidExecutor, Context context,
-			ShutdownManager shutdownManager, SimplexPluginCallback callback) {
-		return new GmailPlugin(pluginExecutor, callback);
-	}
-}
diff --git a/src/net/sf/briar/plugins/email/GmailTransportConnectionWriter.java b/src/net/sf/briar/plugins/email/GmailTransportConnectionWriter.java
deleted file mode 100644
index 2a4f0c515833e262a32925a54bf3fd7467d8b3d4..0000000000000000000000000000000000000000
--- a/src/net/sf/briar/plugins/email/GmailTransportConnectionWriter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package net.sf.briar.plugins.email;
-
-import static java.util.logging.Level.WARNING;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.logging.Logger;
-
-import javax.microedition.io.StreamConnection;
-
-import net.sf.briar.api.plugins.simplex.SimplexTransportWriter;
-
-class GmailTransportConnectionWriter implements SimplexTransportWriter {
-
-	private static final Logger LOG =
-			Logger.getLogger(GmailTransportConnectionWriter.class.getName());
-	private final StreamConnection stream;
-	private final long capacity = 25 * 1000 * 1000;
-
-	public GmailTransportConnectionWriter(StreamConnection stream) {
-		this.stream = stream;
-	}
-
-	public long getCapacity() {
-		return capacity;
-	}
-
-	public OutputStream getOutputStream() throws IOException {
-		return stream.openOutputStream();
-	}
-
-	public boolean shouldFlush() {
-		return false;
-	}
-
-	public void dispose(boolean exception) {
-		try {
-			stream.close();
-		} catch(IOException e) {
-			if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
-		}
-	}
-}