2008-11-01 17:32:06 -04:00
|
|
|
|
2009-12-14 21:50:53 -05:00
|
|
|
package com.fsck.k9.mail;
|
2008-11-01 17:32:06 -04:00
|
|
|
|
2010-03-03 23:00:30 -05:00
|
|
|
import com.fsck.k9.Account;
|
2009-12-14 21:50:53 -05:00
|
|
|
import com.fsck.k9.mail.transport.SmtpTransport;
|
|
|
|
import com.fsck.k9.mail.transport.WebDavTransport;
|
2008-11-01 17:32:06 -04:00
|
|
|
|
2009-11-24 19:40:29 -05:00
|
|
|
public abstract class Transport
|
|
|
|
{
|
2008-11-01 17:32:06 -04:00
|
|
|
protected static final int SOCKET_CONNECT_TIMEOUT = 10000;
|
|
|
|
|
2009-04-09 13:48:05 -04:00
|
|
|
// RFC 1047
|
|
|
|
protected static final int SOCKET_READ_TIMEOUT = 300000;
|
|
|
|
|
2010-03-03 23:00:30 -05:00
|
|
|
public synchronized static Transport getInstance(Account account) throws MessagingException
|
2009-11-24 19:40:29 -05:00
|
|
|
{
|
2010-03-03 23:00:30 -05:00
|
|
|
String uri = account.getTransportUri();
|
2009-11-24 19:40:29 -05:00
|
|
|
if (uri.startsWith("smtp"))
|
|
|
|
{
|
2008-11-01 17:32:06 -04:00
|
|
|
return new SmtpTransport(uri);
|
2009-11-24 19:40:29 -05:00
|
|
|
}
|
|
|
|
else if (uri.startsWith("webdav"))
|
|
|
|
{
|
2010-03-03 23:00:30 -05:00
|
|
|
return new WebDavTransport(account);
|
2009-11-24 19:40:29 -05:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2008-11-01 17:32:06 -04:00
|
|
|
throw new MessagingException("Unable to locate an applicable Transport for " + uri);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public abstract void open() throws MessagingException;
|
|
|
|
|
|
|
|
public abstract void sendMessage(Message message) throws MessagingException;
|
|
|
|
|
|
|
|
public abstract void close() throws MessagingException;
|
|
|
|
}
|