この例では、ソケットを使用してJavaの特定のコードを共有して、参照用の電子メールを送信するためにSMTPプロトコルを実装しています。特定のコンテンツは次のとおりです
パッケージメール; java.io.bufferedReader;インポートjava.io.ioexception; Import java.io.inputStream; Import java.io.inputStreamReader; Import java.outputStream; Import java.io.io.io.printwriter; Import java.io.reader; Import java.net.net.socket; import java.util.arylist; java.util.list; import java.util.list; import org.apache.commons.comdec.binary.base64; public class mail {public static void main(string [] args)throws ioexception {mail mail = new Mail(); mail.setsmtpserver( "smtp.qq.com"); Mail.SetFrommail( "1344364 ****@qq.com"); mail.addtomail( "105648 ****@qq.com"); mail.addtomail( "long *******@sina.com"); mail.setUsername( "134364 ****"); mail.setPassWord( "************"); mail.setsubject( "Test Mail"); mail.setContent( "<h1> hello </h1> <br/> <img src =/" https://www.baidu.com/img/baidu_jgylogo3.gif?v=39549282.gif/ "/>"); mail.setshowlog(true); mail.send(); System.out.println( "プログラムエンド"); } / **電子メール件名** /プライベート文字列件名; / **このアドレスから送信**/プライベート文字列frommail; / ** username **/ private string username; / **パスワードのログイン**/プライベート文字列パスワード。 / ** SMTPサーバーアドレス**/プライベート文字列smtpserver; / ** SMTPサーバーポート(デフォルト:25)**/ private int smtpport = 25; / ** Tomailに送信されたすべてのアドレス**/プライベートリスト<String> Tomail; / **メールコンテンツ**/プライベート文字列コンテンツ。 / **ログを表示するかどうか**/プライベートブールショーログ。 public void addtomail(string mail){if(tomail == null)tomail = new ArrayList <String>(); Tomail.Add(メール); } public void send(){if(smtpserver == null){throw new runtimeexception( "smtpserverは空にすることはできません"); } if(username == null){throw new runtimeException( "username can cbout each"); } if(password == null){throw new runtimeException( "パスワードは空にすることはできません"); } if(frommail == null){throw new runtimeexception( "frommailは空にすることはできません"); } if(tomail == null || tomail.isempty()){throw new runtimeexception( "tomail can oble ve veed"); } if(content == null || tomail.isempty()){throw new runtimeException( "コンテンツは空にすることはできません"); }ソケットソケット= null; inputstream in = null; outputStream out = null; try {socket = new Socket(smtpserver、smtpport); socket.setsotimeout(3000); in = socket.getInputStream(); out = socket.getOutputStream(); } catch(ioException e){new runtimeexception( "connect" + smtpserver + ":" + smtpport + "failed"、e); } BufferedReaderProxy Reader = new BufferedReaderProxy(new inputStreamReader(in)、showlog); printWriterProxy Writer = new PrintWriterProxy(out、showlog); reader.showresponse(); writer.println( "helo" + smtpserver); reader.showresponse(); writer.println( "auth login"); reader.showresponse(); writer.println(new String(base64.encodeBase64(username.getBytes()))); reader.showresponse(); writer.println(new String(base64.encodeBase64(password.getBytes()))); reader.showresponse(); writer.println( "mail from:" + frommail); reader.showresponse(); for(string mail:tomail){writer.println( "rcpt to:" + mail); reader.showresponse(); } writer.println( "data"); writer.println( "content-type:text/html"); if(subject!= null){writer.println( "subject:" + subject); } writer.println( "from:" + frommail); writer.print( "to:"); for(string mail:tomail){writer.print(mail + ";"); } writer.println(); writer.println(); writer.println(content); writer.println( "。"); reader.showresponse(); writer.println( "quit"); reader.showresponse(); try {socket.close(); } catch(ioException e){system.err.println( "電子メールの完了を送信し、ソケットエラーが発生した:" + e.getmessage()); }} public string getSubject(){return subject; } public void setSubject(string subject){this.subject = subject; } public string getFrommail(){return frommail; } public void setFrommail(String FromMail){this.Frommail = fromMail; } public string getSmtpserver(){return smtpserver; } public void setsmtpserver(string smtpserver){this.smtpserver = smtpserver; } public int getSmtpport(){return smtpport; } public void setsmtpport(int smtpport){this.smtpport = smtpport; } public string getContent(){return content; } public void setContent(string content){this.content = content; } public List <String> getTomail(){return tomail; } public void settomail(list <string> tomail){this.tomail = tomail; } public string getUsername(){return username; } public void setUsername(string username){this.username = username; } public string getPassWord(){パスワードを返します。 } public void setPassword(string password){this.password = password; } public boolean getshowlog(){return showlog; } public void setshowlog(boolean showlog){this.showlog = showlog; } static class printwriterproxy extends printwriter {private boolean showRequest; public PrintWriterProxy(outputStream out、boolean showRequest){super(out、true); this.showRequest = showRequest; } @Override public void println(){if(showRequest)system.out.println(); super.println(); } public void print(string s){if(showRequest)system.out.print(s); super.print(s); }} staticクラスBufferedReaderProxyはbufferedReaderを拡張します{private boolean show Response = true; public BufferedReaderProxy(Reader in、boolean show Response){super(in); this.showResponse = showResponse; } public void showResponse(){try {string line = readline();文字列番号= line.substring(0、3); int num = -1; try {num = integer.parseint(number); } catch(Exception E){} if(num == -1){throw new runtimeException( "応答情報エラー:" + line); } else if(num> = 400){throw new runtimeException( "email failed:" + line); } if(showResponse){system.out.println(line); }} catch(ioException e){system.out.println( "応答が得られなかった"); }}}}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。