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

org.subethamail.smtp.server.Session Maven / Gradle / Ivy

package org.subethamail.smtp.server;

import java.util.ArrayList;
import java.util.List;

import org.subethamail.smtp.MessageListener;

/**
 * A sesssion describes events which happen during a
 * SMTP session. It keeps track of all of the MessageListeners
 * that are going to be responsible for attempting a delivery.
 * 
 * @author Ian McFarland <[email protected]>
 * @author Jon Stevens
 */
@SuppressWarnings("serial")
public class Session
{
	private boolean dataMode = false;
	private boolean hasSeenHelo = false;
	private boolean active = true;
	private String sender = null;
	private List deliveries = new ArrayList();

	public Session()
	{
	}

	public class Delivery
	{
		MessageListener listener;
		String recipient;

		public Delivery(MessageListener listener, String recipient)
		{
			this.listener = listener;
			this.recipient = recipient;
		}

		public MessageListener getListener()
		{
			return this.listener;
		}

		public String getRecipient()
		{
			return this.recipient;
		}
	}

	public boolean isActive()
	{
		return this.active;
	}

	public void quit()
	{
		this.active = false;
	}

	public void addListener(MessageListener messageListener, String recipient)
	{
		Delivery delivery = new Delivery(messageListener, recipient);
		this.deliveries.add(delivery);
	}

	public List getDeliveries()
	{
		return this.deliveries;
	}

	public String getSender()
	{
		return this.sender;
	}

	public void setSender(String sender)
	{
		this.sender = sender;
	}

	public boolean hasSeenHelo()
	{
		return this.hasSeenHelo;
	}

	public void setHasSeenHelo(boolean hasSeenHelo)
	{
		this.hasSeenHelo = hasSeenHelo;
	}

	public boolean isDataMode()
	{
		return this.dataMode;
	}

	public void setDataMode(boolean dataMode)
	{
		this.dataMode = dataMode;
	}

	public void reset()
	{
		reset(false);
	}

	public void reset(boolean hasSeenHelo)
	{
		this.sender = null;
		this.dataMode = false;
		this.active = true;
		this.hasSeenHelo = hasSeenHelo;
		this.deliveries.clear();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy