Mercurial Hosting > luan
diff src/goodjava/mail/Smtp.java @ 1584:d3728e3e5af3
mail work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 11 Mar 2021 01:22:20 -0700 |
parents | 1cc6c7fa803d |
children | e34b73678a4f |
line wrap: on
line diff
--- a/src/goodjava/mail/Smtp.java Sun Mar 07 02:22:09 2021 -0700 +++ b/src/goodjava/mail/Smtp.java Thu Mar 11 01:22:20 2021 -0700 @@ -17,30 +17,30 @@ private final Writer writer; public final String ehlo; - public Smtp(Socket socket) throws IOException, SmtpException { + public Smtp(Socket socket) throws IOException, MailException { this.socket = socket; this.reader = new InputStreamReader(socket.getInputStream()); this.writer = new OutputStreamWriter(socket.getOutputStream()); String s = read(); if( !s.startsWith("220") ) - throw new SmtpException(s); + throw new MailException(s); write( "EHLO\r\n" ); ehlo = read(); if( !ehlo.startsWith("250") ) - throw new SmtpException(ehlo); + throw new MailException(ehlo); } - public String authenticate(String username,String password) throws IOException, SmtpException { + public String authenticate(String username,String password) throws IOException, MailException { String s = "\0" + username + "\0" + password; s = GoodUtils.base64Encode(s); write( "AUTH PLAIN " + s + "\r\n" ); String r = read(); if( !r.startsWith("235") ) - throw new SmtpException(r); + throw new MailException(r); return r; } - public void send(Message msg) throws IOException, SmtpException { + public void send(Message msg) throws IOException, MailException { for( Map.Entry<String,String> entry : msg.headers.entrySet() ) { String name = entry.getKey(); String value = entry.getValue(); @@ -59,42 +59,42 @@ data( msg.toText() ); } - public void close() throws IOException, SmtpException { + public void close() throws IOException, MailException { write( "QUIT\r\n" ); String s = read(); if( !s.startsWith("221") ) - throw new SmtpException(s); + throw new MailException(s); socket.close(); } - public String from(String address) throws IOException, SmtpException { + public String from(String address) throws IOException, MailException { write( "MAIL FROM: " + address + "\r\n" ); String r = read(); if( !r.startsWith("250") ) - throw new SmtpException(r); + throw new MailException(r); return r; } - public String to(String address) throws IOException, SmtpException { + public String to(String address) throws IOException, MailException { write( "RCPT TO: " + address + "\r\n" ); String r = read(); if( !r.startsWith("250") ) - throw new SmtpException(r); + throw new MailException(r); return r; } - public String data(String text) throws IOException, SmtpException { + public String data(String text) throws IOException, MailException { if( !text.endsWith("\r\n") ) - throw new SmtpException("text must end with \\r\\n"); + throw new MailException("text must end with \\r\\n"); text = text.replace("\r\n.","\r\n.."); write( "DATA\r\n" ); String r = read(); if( !r.startsWith("354") ) - throw new SmtpException(r); + throw new MailException(r); write( text + ".\r\n" ); r = read(); if( !r.startsWith("250") ) - throw new SmtpException(r); + throw new MailException(r); return r; } @@ -107,20 +107,4 @@ writer.write(s); writer.flush(); } - - public static void main(String[] args) throws Exception { - Socket socket = new Socket("smtpcorp.com",2525); - Smtp smtp = new Smtp(socket); - smtp.authenticate("smtp@luan.software","luanhost"); - smtp.from("smtp@luan.software"); - smtp.to(" fschmidt@gmail.com"); - String text = "\r\n" - +"test3\r\n" - +".q\r\n" - +"x\r\n" - +"rg; ;lrg dsl rgj errlgerrg neskrjg skrg rdsg drskrg sd;gr s;kgr skrg skrg sdg ds fg;ks gegr erg ;sg sd; g;sdr gsklrg sg s;kkrg s;hg ;slrg ;elrg ;reg r;g ;r g;er g;ler g;e g; g;r g rg; srkd fjl kj kklsjrg lsk gskdf;rs gkrj glj grekjs lksjgkjn kjslg rklrg ;rsd; kj drsg akrglk kalrgklrsdnrgkgj;r ;s ns b;n;sn ;njslk r;n\r\n" - ; - smtp.data(text); - smtp.close(); - } }