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

org.subethamail.smtp.command.HelpCommand Maven / Gradle / Ivy

The newest version!
package org.subethamail.smtp.command;

import java.io.IOException;

import org.subethamail.smtp.server.BaseCommand;
import org.subethamail.smtp.server.CommandException;
import org.subethamail.smtp.server.ConnectionContext;
import org.subethamail.smtp.server.SMTPServer;

/**
 * @author Ian McFarland <[email protected]>
 * @author Jon Stevens
 */
public class HelpCommand extends BaseCommand
{
	public HelpCommand()
	{
		super("HELP",
				"The HELP command gives help info about the topic specified.\n"
					+ "For a list of topics, type HELP by itself.",
				"[  ]");
	}

	@Override
	public void execute(String commandString, ConnectionContext context) throws IOException
	{
		String args = getArgPredicate(commandString);
		if ("".equals(args))
		{
			context.sendResponse(getCommandMessage((SMTPServer)context.getServer()));
			return;
		}
		try
		{
			context.sendResponse(getHelp(args).toOutputString());
		}
		catch (CommandException e)
		{
			context.sendResponse("504 HELP topic \"" + args + "\" unknown.");
		}
	}

	private String getCommandMessage(SMTPServer server)
	{
		return "214-This is the "
				+ server.getNameVersion()
				+ " server running on "
				+ server.getHostName()
				+ "\r\n"
				+ "214-Topics:\r\n"
				+ getFormattedTopicList()
				+ "214-For more info use \"HELP \".\r\n"
				+ "214-For more information about this server, visit:\r\n"
				+ "214-    http://subetha.tigris.org\r\n"
				+ "214-To report bugs in the implementation, send email to:\r\n"
				+ "214-    [email protected]\r\n"
				+ "214-For local information send email to Postmaster at your site.\r\n"
				+ "214 End of HELP info";
	}

	protected String getFormattedTopicList()
	{
		StringBuilder sb = new StringBuilder();
	    for (String key : super.getHelp().keySet())
	    {
	    	sb.append("214-     " + key + "\r\n");
	    }
		return sb.toString();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy