All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.subethamail.smtp.MessageContext Maven / Gradle / Ivy

There is a newer version: 3.1.7
Show newest version
/*
 * $Id: MessageContext.java 355 2009-10-06 16:26:00Z lhoriman $
 * $URL: https://subethasmtp.googlecode.com/svn/trunk/src/org/subethamail/smtp/MessageContext.java $
 */
package org.subethamail.smtp;

import java.net.SocketAddress;
import java.security.cert.Certificate;

import org.subethamail.smtp.server.SMTPServer;

/**
 * Interface which provides context to the message handlers.
 *
 * @author Jeff Schnitzer
 */
public interface MessageContext
{
	/**
	 * @return the SMTPServer object.
	 */
	public SMTPServer getSMTPServer();

	/**
	 * @return the IP address of the remote server.
	 */
	public SocketAddress getRemoteAddress();

	/**
	 * @return the handler instance that was used to authenticate.
	 */
	public AuthenticationHandler getAuthenticationHandler();

	/**
	 * @return the host name or address literal the client supplied in the HELO
	 *         or EHLO command, or null if neither of these commands were
	 *         received yet. Note that SubEthaSMTP (along with some MTAs, but
	 *         contrary to RFC 5321) accept mail transactions without these
	 *         commands.
	 */
	public String getHelo();

	/**
	 * Returns the identity of the peer which was established as part of the TLS handshake
	 * as defined by {@link javax.net.ssl.SSLSession#getPeerCertificates()}.
	 * 

* In order to get this information, override {@link SMTPServer#createSSLSocket(java.net.Socket)} and call * {@link javax.net.ssl.SSLSocket#setNeedClientAuth(boolean) setNeedClientAuth(true)} on the created socket. * * @return an ordered array of peer certificates, with the peer's own certificate first followed * by any certificate authorities, or null when no such information is available * @see javax.net.ssl.SSLSession#getPeerCertificates() */ Certificate[] getTlsPeerCertificates(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy