Codigo de correo en java

Si pudieran enviarme un codigo de correo en java. Muchisimas gracias

1 Respuesta

Respuesta
1
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Enumeration;
import java.util.Vector;
public class SMTP
{
public SMTP(String s)
throws UnknownHostException, IOException
{
SMTPConstructor();
_server = s;
try
{
_socket = new Socket(_server, 25);
_input = new BufferedReader(new InputStreamReader(_socket.getInputStream()));
_output = new OutputStreamWriter(_socket.getOutputStream());
}
catch(UnknownHostException unknownhostexception)
{
appendErrorMessage(unknownhostexception);
throw unknownhostexception;
}
catch(IOException ioexception)
{
appendErrorMessage(ioexception);
throw ioexception;
}
}
public void SMTPConstructor()
{
_state = 0;
_server = null;
_socket = null;
_input = null;
_output = null;
_sender = "[email protected]";
_recipients = new Vector();
_recipientsEnumeration = null;
_messageData = null;
_errorMessage = new StringBuffer();
}
public void addRecipient(String s)
{
_recipients.addElement(s);
}
private void appendErrorMessage(Exception exception)
{
_errorMessage.append(exception.toString());
}
public String getErrorMessage()
{
return _errorMessage.toString();
}
private String getMessage(String s)
{
if(s.length() >= 4)
return s.substring(4);
else
return "";
}
public static void main(String args[])
{
if(args.length != 5)
{
System.out.println("Bad parameters. Usage:");
System.out.println(" java SMTP server from to subject message");
System.out.println("example:");
System.out.println(" java SMTP mail.here.com [email protected] [email protected] \"Hello\" \"Hi there\"");
System.exit(-1);
}
try
{
SMTP smtp = new SMTP(args[0]);
smtp.setSender("<" + args[1] + ">");
smtp.addRecipient("<" + args[2] + ">");
StringBuffer stringbuffer = new StringBuffer("From: <");
stringbuffer.append(args[1]);
stringbuffer.append(">\r\nTo: <");
stringbuffer.append(args[2]);
stringbuffer.append(">\r\nSubject: ");
stringbuffer.append(args[3]);
stringbuffer.append("\r\n");
stringbuffer.append("\r\n");
stringbuffer.append(args[4]);
StringReader stringreader = new StringReader(stringbuffer.toString());
smtp.setData(stringreader);
if(smtp.send())
{
System.out.println("Message sent.");
} else
{
System.out.println("Failed to send message.");
System.out.println(smtp.getErrorMessage());
System.exit(-1);
}
}
catch(Exception exception)
{
System.out.println(exception);
System.exit(-1);
}
}
private boolean processAnswer(String s)
{
try
{
if(s.length() < 3)
return false;
char c = s.charAt(0);
if(c == '4' || c == '5')
if(_state == 7)
{
return true;
} else
{
_output.write("quit\r\n");
_errorMessage.append(getMessage(s));
_state = 7;
return true;
}
switch(_state)
{
default:
break;
case 0: // '\0'
_output.write("helo\r\n");
_state = 1;
break;
case 1: // '\001'
_output.write("MAIL FROM:");
_output.write(_sender);
_output.write("\r\n");
_state = 2;
break;
case 2: // '\002'
if(_recipientsEnumeration.hasMoreElements())
{
_output.write("RCPT TO:");
_output.write((String)_recipientsEnumeration.nextElement());
_output.write("\r\n");
break;
}
_state = 3;
// fall through
case 3: // '\003'
_output.write("DATA\r\n");
_state = 4;
break;
case 4: // '\004'
int i;
while((i = _messageData.read()) != -1)
_output.write(i);
_output.write("\r\n.\r\n");
_state = 5;
break;
case 5: // '\005'
_output.write("QUIT\r\n");
_state = 6;
break;
case 6: // '\006'
_state = 8;
break;
case 7: // '\007'
_state = 9;
break;
}
return true;
}
catch(Exception exception)
{
_state = 9;
appendErrorMessage(exception);
return false;
}
}
public boolean send()
{
if(_recipients.size() != 0)
{
_recipientsEnumeration = _recipients.elements();
} else
{
_errorMessage.append("No recipients defined");
return false;
}
do
{
if(_state == 9 || _state == 8)
{
try
{
_socket.close();
}
catch(Exception exception)
{
appendErrorMessage(exception);
}
return _state != 9;
}
try
{
String s = _input.readLine();
if(!processAnswer(s))
_state = 9;
_output.flush();
}
catch(Exception _ex)
{
_state = 9;
}
} while(true);
}
public void setData(Reader reader)
{
_messageData = reader;
}
public void setSender(String s)
{
_sender = s;
}
private static final short INTRODUCTION_STATE = 0;
private static final short AFTER_HELO_STATE = 1;
private static final short AFTER_MAIL_FROM_STATE = 2;
private static final short SENDING_RECIPIENTS_STATE = 3;
private static final short AFTER_DATA_STATE = 4;
private static final short SENDING_DATA_STATE = 5;
private static final short QUITTING_STATE = 6;
private static final short ERROR_QUITTING_STATE = 7;
private static final short FINISHED_STATE = 8;
private static final short ERROR_FINISHED_STATE = 9;
private short _state;
private String _server;
private Socket _socket;
private Writer _output;
private BufferedReader _input;
private String _sender;
private Vector _recipients;
private Enumeration _recipientsEnumeration;
private Reader _messageData;
private StringBuffer _errorMessage;
}
import java.io.*;
import java.net.UnknownHostException;
import java.util.Hashtable;
import java.util.Vector;
public class Mailator
{
public Mailator()
{
MailatorConstructor();
}
protected void MailatorConstructor()
{
_sender = null;
_recipients = new Vector();
_subject = null;
_messageData = null;
_composedMessage = new StringBuffer();
_smtpConnection = null;
_commandToCommandIndex = new Hashtable();
_quit = false;
for(int i = 0; i < 10; i++)
_commandToCommandIndex.put(_commands, new Integer(i));
}
public void addRecipient(String s)
{
_recipients.addElement(s);
}
public int getCommandIdentifier(String s)
{
Object obj = _commandToCommandIndex.get(s);
if(obj == null)
return 11;
else
return ((Integer)obj).intValue();
}
public boolean isFinished()
{
return _quit;
}
public static void main(String args[])
{
try
{
BufferedReader bufferedreader;
if(args.length == 0)
{
boolean flag = true;
bufferedreader = new BufferedReader(new InputStreamReader(System.in));
} else
{
StringBuffer stringbuffer = new StringBuffer();
boolean flag2 = false;
for(int i = 0; i < args.length; i++)
{
String s = args;
if(s.length() > 1 && s.charAt(0) == '-')
{
if(flag2)
stringbuffer.append("\r\n");
stringbuffer.append(s.substring(1));
flag2 = true;
continue;
}
if(flag2 && !s.equals("-"))
{
stringbuffer.append(' ');
stringbuffer.append(s);
continue;
}
stringbuffer = new StringBuffer("echo ");
stringbuffer.append(s);
stringbuffer.append(" : not a valid argument\r\nhelp\r\nquit");
break;
}
stringbuffer.append("\r\n");
boolean flag1 = false;
stringbuffer.append("send\r\n");
bufferedreader = new BufferedReader(new StringReader(stringbuffer.toString()));
}
Mailator mailator = new Mailator();
String s1;
while((s1 = bufferedreader.readLine()) != null)
{
if(!mailator.processCommand(s1))
{
System.out.println("Failed to process command");
System.exit(-1);
}
if(mailator.isFinished())
break;
}
}
catch(Exception exception)
{
System.out.println(exception.getMessage());
System.exit(-1);
}
System.exit(0);
}
public boolean processCommand(String s)
throws Exception
{
s = s.trim();
if(s.length() == 0)
return true;
int i = s.indexOf(' ');
String s1;
String s2;
if(i == -1)
{
s1 = s;
s2 = null;
} else
{
s1 = s.substring(0, i).trim();
s2 = s.substring(i).trim();
}
switch(getCommandIdentifier(s1))
{
case 10: // '\n'
default:
break;
case 0: // '\0'
if(s2 == null)
System.out.println("Argument expected");
else
setServer(s2);
break;
case 1: // '\001'
if(s2 == null)
System.out.println("Argument expected");
else
setSender(s2);
break;
case 2: // '\002'
if(s2 == null)
System.out.println("Argument expected");
else
addRecipient(s2);
break;
case 3: // '\003'
if(s2 == null)
System.out.println("Argument expected");
else
setSubject(s2);
break;
case 4: // '\004'
if(s2 == null)
System.out.println("Argument expected");
else
setMessageData(new StringReader(s2));
break;
case 5: // '\005'
if(s2 == null)
System.out.println("Argument expected");
else
setMessageData(new FileReader(s2));
break;
case 6: // '\006'
sendMail();
_quit = true;
break;
case 7: // '\007'
if(s2 == null)
System.out.println("Argument expected");
else
System.out.println(s2);
break;
case 8: // '\b'
showHelp();
break;
case 9: // '\t'
_quit = true;
return true;
case 11: // '\013'
System.out.println("Unknown command " + s1);
return true;
}
return true;
}
public void sendMail()
throws UnknownHostException, IOException, Exception
{
if(_server == null)
throw new Exception("Missing \"server\" parameter.");
if(_recipients.size() == 0)
throw new Exception("Missing \"to\" parameter. At least one recipient needed.");
System.out.println("Sending...");
_smtpConnection = new SMTP(_server);
_smtpConnection.setSender(_sender);
_composedMessage.append("From: <");
if(_sender != null)
_composedMessage.append(_sender);
_composedMessage.append(">\r\nTo: ");
for(int i = 0; i < _recipients.size(); i++)
{
String s = (String)_recipients.elementAt(i);
_smtpConnection.addRecipient(s);
_composedMessage.append(s);
_composedMessage.append(" <");
_composedMessage.append(s);
if(i != _recipients.size() - 1)
_composedMessage.append(">,\r\n ");
else
_composedMessage.append(">\r\n");
}
_composedMessage.append("Subject: ");
if(_subject != null)
_composedMessage.append(_subject);
_composedMessage.append("\r\n");
_composedMessage.append("\r\n");
if(_messageData != null)
{
BufferedReader bufferedreader = new BufferedReader(_messageData);
String s1;
while((s1 = bufferedreader.readLine()) != null)
{
_composedMessage.append(s1);
_composedMessage.append("\r\n");
}
} else
{
_composedMessage.append("\r\n");
}
_smtpConnection.setData(new StringReader(_composedMessage.toString()));
_smtpConnection.send();
System.out.println("Sent.");
}
public void setMessageData(Reader reader)
{
_messageData = reader;
}
public void setSender(String s)
{
_sender = s;
}
public void setServer(String s)
{
_server = s;
}
public void setSubject(String s)
{
_subject = s;
}
public void showHelp()
{
System.out.println("Usage: java Mailator -[param1] [arg1] -[param2] -[arg2] ...");
System.out.println("or use the command line parser with the same parameters without the");
System.out.println("preceeding '-' before each command");
System.out.println("Where the param may be:");
System.out.println(" server <SMTP server>");
System.out.println(" to <email address>");
System.out.println(" from <email address>");
System.out.println(" subject <subject line>");
System.out.println(" message <message contents>");
System.out.println(" messageFile <text file containing message body>");
System.out.println(" help <show this help>");
System.out.println(" send <sends the message and quits>");
System.out.println(" quit <quit>");
System.out.println("");
System.out.println("examples:");
System.out.println(" java -help");
System.out.println(" java -from [email protected] -to [email protected] -subject Hello -message Hi there.");
}
protected String _server;
protected String _sender;
protected Vector _recipients;
protected String _subject;
protected Reader _messageData;
protected StringBuffer _composedMessage;
protected SMTP _smtpConnection;
protected boolean _quit;
protected static final int SERVER_COMMAND = 0;
protected static final int FROM_COMMAND = 1;
protected static final int TO_COMMAND = 2;
protected static final int SUBJECT_COMMAND = 3;
protected static final int MESSAGE_COMMAND = 4;
protected static final int MESSAGE_FILE_COMMAND = 5;
protected static final int SEND_COMMAND = 6;
protected static final int ECHO_COMMAND = 7;
protected static final int HELP_COMMAND = 8;
protected static final int QUIT_COMMAND = 9;
protected static final int LAST_COMMAND = 10;
protected static final int UNKNOWN_COMMAND = 11;
protected static final String _commands[] = {
"server", "from", "to", "subject", "message", "messageFile", "send", "echo", "help", "quit"
};
protected Hashtable _commandToCommandIndex;
Y este bat lo ejecuta
java Mailator -server esfera. Cl -from [email protected] -to [email protected] -subject "Test" -message "Hola"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas