Contoh ini membagikan kode spesifik Java menggunakan soket untuk mengimplementasikan protokol SMTP untuk mengirim email untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Paket surat; impor java.io.bufferedreader; import java.io.ioexception; impor java.io.inputstream; import java.io.inputStreamreader; impor java.io.outputstream; import java.oVaet; impor java.io.reader; impor java.net. java.util.list; import java.util.list; impor org.apache.commons.codec.binary.base64; Public Class Mail {public static void main (string [] args) melempar 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 ("uji surat"); mail.setContent ("<h1> halo </h1> <br/> <img src =/" https://www.baidu.com/img/baidu_jgylogo3.gif?v=39549282.gif/ "/>"); mail.setshowlog (true); mail.send (); System.out.println ("Program End"); } / ** Subjek email ** / subjek string pribadi; / ** Kirim dari alamat ini **/ string privat Frommail; / ** Nama pengguna **/ nama pengguna string privat; / ** Kata sandi login **/ kata sandi string pribadi; / ** Alamat server SMTP **/ Private String Smtpserver; / ** port server smtp (default: 25) **/ private int smtpport = 25; / ** Semua alamat yang dikirim ke tomail **/ daftar pribadi <string> tomail; / ** Konten email **/ konten string pribadi; / ** apakah akan menampilkan log **/ private boolean showlog; public void addToMail (string mail) {if (tomail == null) tomail = new ArrayList <string> (); tomail.add (mail); } public void send () {if (smtpserver == null) {lempar runtimeException baru ("smtpserver tidak bisa kosong"); } if (username == null) {lempar runtimeException baru ("nama pengguna tidak bisa kosong"); } if (password == null) {throw runimeException baru ("Kata sandi tidak bisa kosong"); } if (frommail == null) {lempar runtimeException baru ("frommail tidak bisa kosong"); } if (tomail == null || tomail.isempty ()) {lempar runtimeException baru ("tomail tidak bisa kosong"); } if (content == null || tomail.isempty ()) {throw runimeException baru ("Konten tidak bisa kosong"); } Soket soket = null; Inputstream in = null; OutputStream out = null; coba {socket = soket baru (smtpserver, smtpport); socket.setsoTimeout (3000); di = socket.getInputStream (); out = socket.getoutputStream (); } catch (ioException e) {lempar runtimeException baru ("Connect to" + smtpserver + ":" + smtpport + "gagal", e); } BufferedReaderProxy Reader = BufferedReaderProxy baru (inputStreamReader baru (IN), showlog); PrintwriterProxy writer = new printwriterProxy (out, showlog); reader.showResponse (); writer.println ("helo" + smtpserver); reader.showResponse (); writer.println ("login auth"); reader.showResponse (); writer.println (string baru (base64.encodeBase64 (username.getbytes ())))); reader.showResponse (); writer.println (string baru (base64.encodeBase64 (kata sandi.getbytes ())))); reader.showResponse (); writer.println ("Mail from:" + frommail); reader.showResponse (); untuk (string mail: tomail) {writer.println ("rcpt ke:" + mail); reader.showResponse (); } writer.println ("data"); writer.println ("tipe konten: teks/html"); if (subjek! = null) {writer.println ("subjek:" + subjek); } writer.println ("from:" + frommail); writer.print ("to:"); untuk (string mail: tomail) {writer.print (mail + ";"); } writer.println (); writer.println (); writer.println (konten); writer.println ("."); reader.showResponse (); writer.println ("QUIT"); reader.showResponse (); coba {socket.close (); } catch (ioException e) {system.err.println ("Kirim email selesai, tutup kesalahan soket terjadi:" + e.getMessage ()); }} public String getSubject () {return subjek; } public void setSubject (string subjek) {this.subject = subjek; } 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; } Daftar Publik <String> gettomail () {return tomail; } public void settomail (Daftar <String> tomail) {this.tomail = tomail; } string publik getUserName () {return username; } public void setusername (string username) {this.username = username; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; } public boolean getshowlog () {return showlog; } public void setShowlog (boolean showlog) {this.showlog = showlog; } kelas statis printwriterProxy memperluas 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); }} kelas statis buferedReaderProxy memperluas bufferedReader {private boolean showResponse = true; Public BufferedReaderProxy (pembaca dalam, boolean showResponse) {super (in); this.showResponse = showResponse; } public void showResponse () {coba {string line = readline (); String number = line.substring (0, 3); int num = -1; coba {num = integer.parseint (angka); } catch (Exception e) {} if (num == -1) {throw runimeException baru ("Kesalahan informasi respons:" + line); } else if (num> = 400) {lempar runtimeException baru ("Kirim email gagal:" + line); } if (showResponse) {System.out.println (line); }} catch (ioException e) {System.out.println ("Gagal mendapatkan respons"); }}}}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.