Dieses Beispiel teilt den spezifischen Java -Code mithilfe von Socket mit, um das SMTP -Protokoll zum Senden von E -Mails für Ihre Referenz zu implementieren. Der spezifische Inhalt ist wie folgt
Paketpost; importieren java.io.bufufferedReader; import Java.io.ioxception; import Java.io.inputStream; Import Java.io.inputStreamReader; Import Java.io.outputStream; Import Java.io.io.printwriter; Import Java.io.Reader; java.util.list; import java.util.list; import org.apache.commons.codec.base.base64; public class mail {public static void main (String [] args) löscht 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> Hallo </h1> <br/> <img src =/" https://www.baidu.com/img/baidu_jgylogo3.gif?v=39549282.gif/ "/>"); mail.setshowlog (true); Mail.Send (); System.out.println ("Programmende"); } / ** E -Mail -Betreff ** / privater Zeichenfolge Betreff; / ** von dieser Adresse senden **/ private Zeichenfolge Fromail; / ** Benutzername **/ privater String -Benutzername; / ** Anmeldenkennwort **/ privates Zeichenfolge Passwort; / ** SMTP -Serveradresse **/ private String SMTPServer; / ** SMTP Server -Port (Standard: 25) **/ privat int SMTPPORT = 25; / ** Alle Adressen, die an Tomail gesendet wurden **/ private Liste <string> Tomail; / ** Mail -Inhalt **/ privater String -Inhalt; / ** ob das Protokoll **/ privater boolescher Showlog angezeigt werden soll; public void addTomail (String mail) {if (tomail == null) tomail = new ArrayList <string> (); Tomail.add (Mail); } public void send () {if (SMTPServer == null) {neue runTimeexception ("SMTPServer kann nicht leer sein"); } if (userername == null) {neue RunTimeException werfen ("Benutzername kann nicht leer sein"); } if (password == null) {neue RunTimeException werfen ("Passwort kann nicht leer sein"); } if (frommail == null) {neue RunTimeException werfen ("frommail kann nicht leer sein"); } if (tomail == null || tomail.isempty ()) {neue runTimeexception ("Tomail kann nicht leer sein"); } if (content == null || tomail.isempty ()) {neue RunTimeException werfen ("Inhalt kann nicht leer sein"); } Socket Socket = 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) {neue runTimeexception werfen ("Verbindung zu" + SMTPServer + ":" + SMTPPORT + "FAILED", E); } BufferedReaderProxy reader = new bufferedReaderproxy (neuer 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 (usustBy.getBytes ()))); Reader.ShowResponse (); writer.println (neuer String (Base64.EncodoDebase64 (password.getBytes ())); Reader.ShowResponse (); writer.println ("Mail von:" + frommail); Reader.ShowResponse (); für (String mail: tomail) {writer.println ("rcpt to:" + mail); Reader.ShowResponse (); } writer.println ("Daten"); writer.println ("content-type: text/html"); if (Subjekt! = null) {writer.println ("Subjekt:" + Subjekt); } writer.println ("from:" + frommail); writer.print ("zu:"); für (String Mail: Tomail) {writer.print (Mail + ";"); } writer.println (); writer.println (); writer.println (Inhalt); writer.println ("."); Reader.ShowResponse (); writer.println ("Quit"); Reader.ShowResponse (); try {socket.close (); } catch (ioException e) {System.err.println ("Senden Sie die E -Mail -Abschluss, schließen Sie den Socket -Fehler:" + e.getMessage ()); }} public String getUntject () {return thema; } public void setSubject (String -Subjekt) {this.subject = Subjekt; } public String getFrommail () {return fromail; } public void setFrommail (String fromail) {this.frommail = frommail; } public String getMtpServer () {return SMTPServer; } public void setsMtpServer (String SMTPServer) {this.smtpServer = SMTPServer; } public int getMtpport () {return SMTPPort; } public void setsmtpport (int SMTPPort) {this.smtpport = SMTPPORT; } public String getContent () {return content; } public void setContent (String -Inhalt) {this.content = content; } publiclist <string> getTomail () {return tomail; } public void settomail (list <string> tomail) {this.tomail = tomail; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getPassword () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; } public boolean getshowlog () {return showlog; } public void setshowlog (boolean showlog) {this.showlog = showlog; } statische Klasse PressewriterProxy erweitert den Pressewriter {private boolesche ShowRequest; public printwriterProxy (outputStream, 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); }} statische Klasse BufferedReaderProxy erweitert BufferedReader {private boolean showResponse = true; public bufferedReaderproxy (Leser in, boolean showResponse) {Super (in); this.showResponse = showResponse; } public void showResponse () {try {string line = readline (); String number = line.substring (0, 3); int num = -1; try {num = integer.parseInt (number); } catch (Ausnahme e) {} if (num == -1) {neue runTimeexception ("Antwortinformation Fehler:" + Zeile); } else if (num> = 400) {werfen Sie eine neue RunTimeException aus ("E -Mail senden fehlgeschlagen:" + Zeile); } if (showResponse) {System.out.println (Zeile); }} catch (ioException e) {System.out.println ("keine Antwort erhalten"); }}}}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.