Kirim email sederhana berdasarkan SMTP
Pertama, diperlukan authenticator:
Paket No001_SMTP Mail Teks Berbasis; Impor javax.mail.authenticator; import javax.mail.passwordAuthentication; kelas publik SimpleAuthenticator memperluas authenticator {private string username; private string kata sandi; Public SimpleAuthenticator (string username, string password) {super (); this.username = username; this.pass name, string password) {); this.username = username; this NEW STRWORCTYAuthentication (nama pengguna, kata sandi);}} Kemudian, tulis program pengiriman email sederhana:
Paket No001_ Surat teks berbasis SMTP; Impor java.util.properties; impor javax.mail.message; impor javax.mail.message; impor javax.mail.messagingException; impor javax.mail.Session; impor javax.mail.transport; impor javax.mail.IninNet. javax.mail.internet.mimemessage; kelas publik smtpsImplemail {public static void main (string [] args) melempar addressException, MessagingException {/* informasi yang diperlukan*/string smtp_mail_host = "smtp.163.com"; // Alamat server email ini, buka email ke Query String email_username = "[email protected]"; String email_password = "mypassword"; string to_email_address = "[email protected]";/* Informasi server*/properti props = properti baru (); props.put.put. Smtp_mail_host); props.put ("mail.smtp.Auth", "true");/* buat sesi*/session = session.getDefaultInstance (props, SimpleAuthenticator baru (email_username, email_password));/* pesan email*/pesan baru = pesan baru = pesan baru = MIMEMESSAGE New MIMEMESSage. InternetAddress (email_username)); message.addrecipient (message.recipienttype.to, new internetAddress (to_email_address)); message.setsubject ("Cara menggunakan surat java untuk mengirim email. (Judul) (001)"); pesan. Transport.send (pesan); System.out.println ("Tidak terlalu sial, Anda dapat memeriksa email.");}} Apa yang harus saya lakukan jika saya mengirim berbagai penerima, CCS, CCS Rahasia
Authenticator digunakan, dihilangkan.
Bahkan, itu untuk mengatur, menambahkan beberapa penerima, pengirim CC, dan pengirim CC rahasia:
Paket No002_ Apa yang harus saya lakukan jika berbagai pengirim dan penerima mengirim CC ke CC; Impor java.io.unsupportedencodingException; impor java.util.properties; impor javax.mail.address; impor javax.mail.message; impor javax.mail.message; impor javax.mail.session; impor javax.mail.transport; impor javax.mail. javax.mail.internet.internetaddress; import javax.mail.internet.mimemessage; kelas publik sendmailwithmultipeople {public static Main (string [] args) melempar addressException, MessagingException, unsupportedencodingException {/* Informasi yang diperlukan*/string // This mail server address, go to the email to which it belongs to search String EMAIL_USERNAME = "[email protected]";String EMAIL_PASSWORD = "mypassword";String TO_EMAIL_ADDRESS_1 = "[email protected]";String CC_EMAIL_ADDRESS_1 = "[email protected]";String BCC_EMAIL_ADDRESS_1 = "[email protected]";/* Server Informasi*/properti Props = properti baru (); props.put ("mail.smtp.host", smtp_mail_host); props.put ("mail.smtp.Auth", "true");/*buat sesi*/sesi = getDefaultInstance (props, new SimpleAuthenticator (email_userame (email_userame)); lempar neail_user)) (props, new SimpleAuthenticator (email_username (email_userame)); Alamat baru [1]; senderArray [0] = InternetAddress baru ("[email protected]", "Nick Huang");/* Pesan Email*/Mimemessage Message = Mimemessage baru (sesi); message.addfrom (senderArray); message.addrecipient (message.recipientpype.to, neederprom; message.addrecipient (message.recipienttype.to, new internetAddress (cc_email_address_1)); message.addrecipient (message.recipienttype.cc, new internetAddress (cc_email_address_1)); message.addrecipient (message.recipienttype.cc, new internetAddress (to_email_address_1)); message.addrecipient (message.recipienttype.bcc, internetAddress baru (bcc_email_address_1)); message.setsubject ("Saya adalah surat pembelajaran surat java"); message.setText ("Saya surat pembelajaran surat java, tolong beri saya awal yang baik."); // Kirim Transport.Send (pesan); System.out.println ("Tidak terlalu sial, Anda dapat memeriksa email.");}} Apa yang Harus Dilakukan Jika Anda Mengirim Lampiran
Authenticator digunakan, dihilangkan.
Kirim Demo Lampiran:
Paket no003_ Apa yang harus dilakukan jika Anda mengirim lampiran; Impor java.io.file; impor java.io.unportedencodingException; impor java.util.properties; impor javax.activation.dataDandler; impor javax.activation.dataSource; impor javax.fileDataSource; impor javax.mail.mail.mail.Address; fileDataSource; impor javax.mail.mail. javax.mail.message; impor javax.mail.messagingException; impor javax.mail.multipart; impor javax.mail.sises; javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;public class SendMailWithAttachment {public static void main(String[] args) throws AddressException, MessagingException, UnsupportedEncodingException {/* Required information*/String Smtp_mail_host = "smtp.163.com"; // Alamat server surat ini, buka email ke Query String email_username = "[email protected]"; String email_password = "kata sandi"; string to_email_address_1 = "[email protected]";/* informasi server*/properti props = properti baru (); props.put ("mail.smtp.host," Smtp_mail_host); props.put ("mail.smtp.Auth", "true");/* buat sesi*/session = session.getDefaultInstance (props, SimpleAuthenticator baru (email_username, email_password));/* pengirim*/alamat [] senderarray = email New [1]);/* pengirim*/alamat [] senderarray = email New [1]));/* pengirim*/alamat [] senderarray = email baru) (1] [1]);/* kirim*/alamat [] senderarray = email New [1]));/* kirim*/alamat [] senderarray = email baru) (1] [1]); Pesan Email*/MIMEMESSAGE Pesan = mimemessage baru (sesi); message.addfrom (senderarray); message.addrecipient (message.recipienttype.to, new internetAddress (to_email_address_1)); pesan.setsubject ("Saya adalah email belajar java mail"); bodypart Mimebodypart (); bodypart.setText ("Ini adalah konten dari email pembelajaran email java, tolong berikan banyak uang.");/* Lampiran*/bodypart lampiranPart1 = mimebodypart baru (); dataSource source = new fileDataSource (file baru ("D:/file 1.txt"); DataHandler (Sumber)); lampiranPart1.setFileName ("=? GBK? B?" + Sun.misc.base64encoder () baru ("File 1.txt" .getbytes ()) + "? ="); Bodypart lampiranPart2 = new mimebodypart (); sumber = "); bodypart lampiranPart2 = new mimebodypart (); sumber =" 2.txt ")); lampiranPart2.setDataHandler (datahandler baru (sumber)); lampiranPart2.setFileName (" =? Gbk? B? " + Sun.misc.base64Encoder baru (); Multipart (" File 2.txt ".getBytes ()) +"? Mimemultipart (); multipart.addbodypart (bodypart); multipart.addbodypart (lampiranPart1); multipart.addbodypart (lampiranpart2); pesan.setContent (multipart); // kirim transport.send (pesan); System.out.println ("tidak khusus untuk tidak." Juga, kirim surat HTML
Authenticator digunakan, dihilangkan.
Bahkan, itu adalah untuk memberi tahu klien penerima untuk mengurai dan merender dengan html:
Paket No004_Send HTML Mail; Impor java.io.unsupportedencodingException; impor java.util.properties; impor javax.mail.address; impor javax.mail.message; impor javax.mail.messagingException; impor javax.multipart; impor javax.mail.sesesion; javax.mail.internet.addressException; impor javax.mail.internet.internetaddress; impor javax.mail.internet.imebodypart; impor javax.mailtipart.mimemessage; clop -howlmail. args) melempar alamat alamat, pesan pesan, unsportedencodingException {/* informasi yang diperlukan*/string smtp_mail_host = "smtp.163.com"; // This mail server address, go to the email to which you belong to search String EMAIL_USERNAME = "[email protected]";String EMAIL_PASSWORD = "password";String TO_EMAIL_ADDRESS_1 = "[email protected]";/* Server information*/Properties props = new Properties();props.put("mail.smtp.host", Smtp_mail_host); props.put ("mail.smtp.Auth", "true");/* buat sesi*/session = session.getDefaultInstance (props, SimpleAuthenticator baru (email_username, email_password));/* pengirim*/alamat [] senderarray = email New [1]);/* pengirim*/alamat [] senderarray = email New [1]));/* pengirim*/alamat [] senderarray = email baru) (1] [1]);/* kirim*/alamat [] senderarray = email New [1]));/* kirim*/alamat [] senderarray = email baru) (1] [1]); Pesan Email*/MIMEMESSAGE Pesan = mimemessage baru (sesi); message.addfrom (senderArray); message.addreciPient (message.recipienttype.to, new internetAddress (to_email_address_1)); pesan.setsubject ("cara mengirim pesan html");//*teks* MimeBodyPart();bodyPart.setContent("<h1>loving you...</h2>", "text/html;charset=gb2312");/* Encapsulate information of various parts of the email*/Multipart multipart = new MimeMultipart();multipart.addBodyPart(bodyPart);message.setContent(multipart);// Send Transport.send (pesan); System.out.println ("Tidak terlalu sial, Anda dapat memeriksa emailnya. ");}} Atau, datang dengan kelas alat?
Authenticator pasti, digunakan, dan dihilangkan.
Karena ada banyak dan properti rumit yang perlu diatur, beri nama dengan atribut sederhana dan mudah digunakan untuk Anda sendiri, jadi gunakan kelas konfigurasi
Paket No005_Get kelas alat; Impor java.io.file; import java.util.arraylist; import java.util.list; kelas publik mailsenderconfig {private string smtpmailhost; // alamat server surat yang mendukung SMTP Protocol/* digunakan untuk masuk ke server email*/nama pengguna string pribadi; kata sandi string pribadi; subjek string pribadi; // judul konten string pribadi; // konten string private frommail; // Tampilkan email yang dikirim dari daftar pribadi kotak surat ini <string> tomails; // Daftar pribadi penerima <string> ccmails; // Daftar Privat CC <String> bccmails; // Secret CC Private List <FILE> Lampiran; // lampiran public mailsenderconfig (string smtpmailhost, string subjek, string konten, string frommail) {super (); smtpmailhost = smtpmailhost; this.subject = subjek; this.content = konten; this.frommail = frommail;} string publik getsmtpmailhost () {return smtpmailhost;} public void setsmtpmailhost (string smtpmailhost) {smtpmailhost = smtpmailhost;} string publik getusername () {ubiNername; username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getFromMail() {return fromMail;}public void setFromMail(String fromMail) {this.fromMail = fromMail;}public List<String> getToMails() {return toMails;}public void setToMails(List<String> toMails) {this.toMails = toMails;}public List<String> getCcMails() {return ccMails;}public void setCcMails(List<String> ccMails) {this.ccMails = ccMails;}public List<String> getBccMails() {return bccMails;}public void setBccmails (Daftar <String> bccmails) {this.bccmails = bccmails;} Daftar publik <shife> getAttachments () {return lampiran;} public void setattachments (List <file> lampiran) {this.Attachments = lampiran;} public string getSubject () {{{{{{{) {{{{{{{{{{) subjek;} public String getContent () {return content;} public void setContent (string content) {this.content = content;} public void addtomail (string mail) {if (this.tomails == null) {this.tomails = new arraylist <string> ();} null) {this.tomails = new arraylist <string> ();} this.tomail) {this.tomails = new arraylist <string> ();} this.tomails) {mail) new arraylist <string> ();} this.tomails) {this.tomails = new arraylist <string> ();} this. (this.ccMails == null) {this.ccMails = new ArrayList<String>();}this.ccMails.add(mail);}public void addBccMail (String mail) {if (this.bccMails == null) {this.bccMails = new ArrayList<String>();}this.bccMails.add(mail);}public void addAttachment (file f) {if (this.attachments == null) {this.attachments = new ArrayList <FILE> ();} this.attachments.add (f);}} Akhirnya, ada bagian kelas alat, yang terutama bertanggung jawab atas beberapa hal: melakukan beberapa tindakan inisialisasi sesuai dengan aturan surat Java, menerjemahkan kelas konfigurasi atribut khusus, mengaturnya dengan aturan surat Java, dan mengirim email.
Juga, harus disebutkan bahwa karena properti yang disediakan oleh kelas alat terbatas, lebih banyak kasus mungkin tidak memenuhi kebutuhan, sehingga mimemessage terpapar. Jika kebutuhan tidak terpenuhi, pengembang dapat memproses dan mengonfigurasinya sendiri, sementara bagian lain masih dapat menggunakan kelas alat.
Paket No005_Get kelas alat; impor java.io.file; impor java.util.properties; impor javax.activation.dataHandler; impor javax.activation.dataSource; impor javax.activation.filedataSource; impor javax.mail.address; impor javax.mail.bodypart; impor javax.mail.address; impor javax.mail.bodyparts; impor javax. javax.mail.messagingException; import javax.mail.multipart; impor javax.mail.Session; impor javax.mail.transport; impor javax.mail.internet.internetaddress; impor javax.mailet.imimebodypart; impor javax.mailmesage.imesage.Mimebodypart; impor javax.meMon.mesage.MimeMebodypart; impor javax.meMon.mesage.imesage. javax.mail.internet.mimemultipart; import no002_ Apa yang harus saya lakukan jika berbagai pengirim dan penerima mengirim cc.simpleAuthenticator; Public Class MailSender {private mailSenderConfig c; Pesan Mimemessage Private; ini; ini. @return*/private sesi initSession () {properties props = properti baru (); if (c.getsmtpmailhost ()! = null && c.getsmtpmailhost (). length ()> 0) {props.put ("mail.smtp.host", c.getsmtpmailhost (); oMe mail.smtp.host ", c.getsmtpmailhost (); oMe mail.smtp.host", c.getsmtpmailhost (); C.GetUserName (). Length ()> 0 && c.getPassword ()! = null && c.getPassword (). Length ()> 0) {props.put ("mail.smtp.Auth", "true"); return session.getDefaultInstance (props, new SimpleAuthenticator (c. c.) c.) (c.) c.) (c.) c.) (c.) (c.) c.) (c.) (c.) c.) {props.put ("mail.smtp.Auth", "false"); return session.getDefaultInstance (props);}}/*** Setel java mail properties*@throws Exception*/private void setConfig () lemparan Exception {this.configValid (); sesi s = this.initsession () (); udder (); mage = configvalid (); sesi s = this.initsession () (); frommailarray = alamat baru [1]; frommailarray [0] = new internetAddress (c.getFrommail ()); pesan.addfrom (frommailarray); if (c.gettomails ()! = null && c.gettomails (). size () 0) {for for (string mail: c.gettomails (). new internetAddress (mail));}} if (c.getccmails ()! = null && c.getccmails (). size ()> 0) {for (string mail: c.getccmails ()) {message.addrecipient (message.recipientype.cc, new internetAddress (mail));}}}}}} {}} {«« «« «n nomail, c.gettomails (). size ()> 0) {for (string mail: c.gettomails ()) {message.addrecIpient (message.recipienttype.bcc, new internetAddress (mail));}} // mail judul pesan.setsubject (c.getSubject ());/* text*/mimebod. Mimebodypart (); bodypart.setContent (c.getContent (), "teks/html; charset = gb2312");/* merangkum informasi dari setiap bagian dari email*/multipart multipart = mimemultipart (); multipart.addbodypart (bodypart); pesan.setcont (MultiPart (MultiPart. = null; if (c.getAttachments ()! = null && c.getAttachments (). size ()> 0) {for (file f: c.getAttachments ()) {lampiranPart = new mimebodypart (); ds = new FileDataSource (f); lampiranMentPart.setDataHandler (ds = new fileDataSource (f); lampiranMentPart.setDataHandler (ds = new fileDataSource (f); lampinmentPart.setDataHandler (ds = baru DataHandler (DS)); stoptormentPart.setFileName ("=? Gbk? B?" + Sun.misc.base64encoder () baru (f.getname (). GetBytes ()) + "? ="); Multipart.addbodypart (lampiran lampiran);}}}}}}}}}} @Multipart. Exception*/private void configValid () melempar pengecualian {if (c == null) {lempar pengecualian baru ("Objek konfigurasi kosong");} if (c.getsmtpmailhost () == null || c.getsmtpmailhost (). length () == 0) {lempar pengecualian baru ("server smtp kosong");} if (c.getFrommail () == null && c.getFrommail (). Panjang () == 0) {lempar pengecualian baru ("Nail pengirim kosong");} if (c.gettomails () () () () ("nail pengirim kosong");} if (c.gettomails () (c.gettomails () ("Nail pengirim kosong");} if (c.gettomails (c.gettomails () (c.) (c. {lempar pengecualian baru ("surat penerima kosong");} if (c.getSubject () == null || c.getsubject (). Length () == 0) {lempar pengecualian baru ("Judul email kosong");} if (c.getContent () == null || c.getcontent () (). if (c. getcontent () == null || c. getcontent () (). if (c. getcontent () = email* @throws MessagingException*/public void send() throws MessagingException {Transport.send(message);}/*** Set MimeMessage to expose this object so that developers can set personalized properties by themselves* @return*/public MimeMessage getMessage() {return message;}/*** Set MimeMessage to expose this object so that developers can set personalized properties by themselves* @return*/public void setMessage (pesan mimemessage) {this.message = pesan;}} menyediakan paket kelas tes sederhana no005_ untuk kelas alat; impor java.io.file; impor javax.mail.internet.mimemessage; kelas publik testcall {public static void main (string [] args) melempar pengecualian {/* informasi yang diperlukan*/string smtp_mail_host = "smtp.163.com"; // Alamat server email ini, buka email tempat Anda berada, dan periksa string email_username = "[email protected]"; string email_password = "kata sandi"; string to_email_address_1 = "[email protected]"; string to_email_address_2 = "contoh Mailsenderconfig (smtp_mail_host, "Ini adalah surat uji untuk tes java mail framework 3.", "Ini konten 3.", Email_username); c.setusername (email_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_address_2); c.addccmail File ("d: /1.txt")); mailsender ms = mailsender baru (c); ms.send (); System.out.println ("terkirim ...");*// penggunaan 2. Dalam lebih banyak kasus, pengaturan yang dibuat oleh uji ini tidak memenuhi kebutuhan kiriman, MAILPONFEK_ MIAP COMPOKS dan MAIL CONFIG CONDERFIG_ Untuk Tes Java Mail Framework 4. "," Ini Konten 4. ", Email_username); c.setusername (email_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_address_2); c.addccmail File ("d: /1.txt")); mailsender ms = mailsender baru (c); mimemessage pesan = ms.getMessage (); message.setContent ("Ini adalah konten yang diganti oleh Mimemessage 4.", "Teks/html; charset = utf-8"); ms.setMessage (pesan); ms.send (); System.out.println ("terkirim ...");}} Tingkatkan kelas alat
Dalam penggunaan aktual, saya menemukan bahwa ketika mengirim email dalam batch, dukungan kelas alat tidak baik. Misalnya, mengirim 100 email, sesuai dengan logika kelas alat di atas, koneksi dibuat untuk setiap email yang dikirim. Jadi, bukankah 100 email 100 kali? Ini adalah limbah yang serius.
Jadi, beberapa peningkatan dilakukan sampai saat ini:
Authenticator pasti, digunakan, dan dihilangkan.
Kelas konfigurasi
impor java.util.arraylist; import java.util.list; kelas publik mailsenderconfig {private string smtpmailhost; // alamat server surat yang mendukung SMTP Protocol/* digunakan untuk masuk ke server email*/nama pengguna string pribadi; kata sandi string pribadi; subjek string pribadi; // judul konten string pribadi; // konten string private frommail; // Tampilkan email yang dikirim dari daftar pribadi kotak surat ini <string> tomails; // Daftar pribadi penerima <string> ccmails; // Daftar Privat CCP <String> bccmails; // Daftar Pribadi CCP Rahasia <Laci -lampiran> Lampiran; // Attachment private String contentType = "text/html;charset=utf-8";/*** Constructor* @param sMTPMailHost SMTP server* @param subject Title* @param content content (sent in the form of "text/html;charset=utf-8" by default)* @param fromMail Sender address*/public MailSenderConfig(String sMTPMailHost, String subject,String konten, string frommail) {super (); smtpmailhost = smtpmailhost; this.subject = subjek; this.content = konten; this.frommail = frommail;}/*** constructor* @param smtpmailhost server smtp* @param username server mail nama pengguna @param kata sandi surat server* @param judul subjek* @param konten (kirim dalam bentuk "html; charset = UTF-8" Konten Default)* @param SMPML; String UserName, String Password, String Subjek, String Content, String Frommail) {super (); smtpmailhost = smtpmailhost; this.username = nama pengguna; this.password = kata sandi; this.subject = subjek; this.content = konten; this.fromMail = fromMail;}public void addToMail (String mail) {if (this.toMails == null) {this.toMails = new ArrayList<String>();}this.toMails.add(mail);}public void addCcMail (String mail) {if (this.ccMails == null) {this.ccMails = new ArrayList <String> ();} this.ccmails.add (mail);} public void addbccmail (string mail) {if (this.bccmails == null) {this.bccmails = new arraylist <string> ();} this.bccmails.add (mail);} newRInt <string> ();} this.bccmails.add (mail);} newRInt <String> (); {this.Attachments = ArrayList baru <TROTOMTORMENT> ();} this.attachments.add (a);}/** getter dan setter*/public string getsmtpmailhost () {return smtpmailhost;} public void setsmtpmailhost (string smtpmailhost; getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getFromMail() {return fromMail;}public void setFromMail(String fromMail) {this.fromMail = fromMail;}public List<String> getToMails() {return toMails;}public void setToMails(List<String> toMails) {this.toMails = toMails;}public List<String> getCcMails() {return ccMails;}public void setCcMails(List<String> ccMails) {this.ccMails = ccMails;}public Daftar <String> getBccmails () {return bccmails;} public void setBccmails (Daftar <String> bccmails) {this.bccmails = bccmails;} Daftar publik <tempatan> getAttachments () {return lampiran;} public void setattachments <lampiran> lampiran> lampiran> lampiran) {lampiran publica = lampiran (lampiran> lampiran <lampiran> lampiran> lampiran) {{{lampiran publicaS. {return subjek;} public void setSubject (string subjek) {this.subject = subjek;} public string getContent () {return content;} public void setContent (string content) {this.content = content;} public string getContentType () {return contentype;} public setContentType () {return contentype;} public void setContentType () {return contentype. ContentType;}} Lampiran Entitas Kelas Impor Java.io.file;/*** Kelas Entitas Lampiran Email*/Lampiran Kelas Publik {File File Privat; Private String FileName; File Publik GetFile () {file return;} public void setFile (file file) {this.file = file;} string publik getFileName () {ifile no (file; filename.trim (). length () == 0) {return file.getName ();} return fileName;} public void setFileName (string filename) {this.fileName = filename;} public lampiran (file file, string file) {super (); this.file = this. {super();this.file = file;}} abstract sending class import java.util.Properties;import javax.mail.Session;public abstract class AbstractSessionMailSender {protected Session session;/*** Initialize Session* @return*/public static Session initSession(MailSenderConfig c) {Properties props = new Properties();if (c.getSMTPMailHost() != null && c.getsmtpmailhost (). length ()> 0) {props.put ("mail.smtp.host", c.getsmtpmailhost ());} if (c.getusername ()! = null && c.getusername (). Panjang (). {props.put ("mail.smtp.Auth", "true"); return session.getDefaultInstance (props, SimpleAuthenTicator baru (c.getUserName (), c.getPassword ());} else {props.put ("mail.smtp.Auth", "false"); return session.getdefs.put ("mail.smtp.Auth", "false"); return session.getdefaule to mail. Penetapan sesi untuk mendukung pengiriman email/kirim beberapa email, sesi dapat di -cache. @return*/public sesi getSession () {return session;} public void setSession (sesi sesi) {this.Session = session;}} Kirim kelas
Impor javax.activation.dataHandler; impor javax.activation.dataSource; impor javax.activation.filedataSource; impor javax.mail.address; impor javax.mail.bodypart; impor javax.moLMessage; impor javax.mail.messagaseccepion; javax.mail.Session; impor javax.mail.transport; impor javax.mail.internet.internetaddress; impor javax.mail.internet.imebodypart; impor javax.mimemulternet.mimemessage; impor javax.mail.ininternet.mimemulnaT.mimemessage; impor javax.mail.ininternet.mimemulternet; MailSender memperluas AbstractSessionMailSender {private mailSenderConfig c; pesan mimemessage pribadi; mailsender publik (mailsenderconfig config) melempar pengecualian {super (); this.c = config; this.setConfig ();} public mailSender (mailSenderConfig, sesi sesi) melempar Exception {super (); this.c = config; this.setConfig (); super.setsession (sesi);}/*** Kirim Email*@Throws MessagingException*/public void send () melempar MessagingException {Transport.Send (pesan);}/*** Dapatkan mimemessage dan mengekspos objek ini untuk memfasilitasi pengembang untuk mengatur properti yang dipersonalisasi (metode yang tidak didukung oleh alat ini dapat ditetapkan oleh Kelas ini dapat diatur oleh pengembang untuk mengaturnya sendiri, metode yang tidak didukung oleh kelas ini dapat diatur oleh Kelas ini dapat diatur oleh Kelas ini dapat diatur oleh mereka, Metode yang tidak didukung oleh Kelas ini. getMessage () {return pesan;}/*** Set Mimemessage untuk mengekspos objek ini untuk memfasilitasi pengembang untuk mengatur properti yang dipersonalisasi (metode yang tidak didukung oleh kelas alat ini dapat ditetapkan oleh pengembang sendiri, dan setelah menyiapkannya)* @return*/public void setMessage (mimeMessage pesan) {this.message = pesan; setConfig () melempar Exception {this.configValid (); if (session == null) {session = initsession (c);} pesan = mimemessage baru (sesi);/* pengirim*/alamat [] frommailArray = alamat baru [1); fromMailArray [0] = internetAndress (c. c. c. (c.gettomails ()! = null && c.gettomails (). size ()> 0) {for (string mail: c.gettomails ()) {message.addrecIpient (pesan. Mail: c.getCcmails ()) {message.addrecIpient (message.recipienttype.cc, new internetAddress (mail));}} if (c.gettomails ()! = null && c.gettomails (). size ()> 0) {for for (string mail: c.gettomails () () {mailseCiPiient (cage) {for for (string mail: c.gettomails () {mailseCiP (c.gettomails () {mailseCiP (c.gettomails () {for mail: c.gettomail () {) InternetAddress (Mail));}} // Email Judul pesan. Mimemultipart (); multipart.addbodypart (bodypart); message.setContent (multipart);/* lampiran*/bodypart lampiranPart = null; datasource ds = null; if (c.getAttachments ()! = Null && c.getattachments (). Size () 0) {forattachments ()! = Null && c.getattachments (). Size () 0) {forAttachments ()! Mimebodypart (); ds = new filedataSource (a.getFile ()); stoptormentpart.setDataHandler (baru Datahandler (ds)); fampaMentPart.setFileName (mimeutility.encodetext (a.getFileName ())); multipart.addbodypart (lampiran -lampiran);}} pesan.setContent (multipart);}/*** Verifikasi Konfigurasi*@THROWSECHION @THROWSEVION*/PRIVATE VOIDRVEIVEDVION {Private Voidve. Pengecualian ("Objek Konfigurasi kosong");} if (c.getsmtpmailhost () == null || c.getsmtpmailhost (). length () == 0) {lempar pengecualian baru ("server smtp kosong");} if (c.getFrommail () == null && c.getFrommail (). Panjang () == 0) {lempar pengecualian baru ("Nail pengirim kosong");} if (c.gettomails () () () () ("nail pengirim kosong");} if (c.gettomails () (c.gettomails () ("Nail pengirim kosong");} if (c.gettomails (c.gettomails () (c.) (c. {lempar pengecualian baru ("surat penerima kosong");} if (c.getsubject () == null || c.getsubject (). length () == 0) {lempar pengecualian baru ("judul email kosong");} if (c.getContent () == null || c.getContent () (). if (c. getcontent () == null || c.getcontent () (). if (c. getcontent () == null || c. getcontent (). Junit Test Class Impor java.io.file; import javax.mail.Session; import javax.mail.internet.mimemessage; impor org.junit.test; kelas publik readme {/* informasi yang diperlukan*/string smtp_mail_host = "smtp.163.com"; // Alamat server surat ini, buka halaman deskripsi server surat tempat Anda berada, dan periksa string email_username = "[email protected]"; string email_password = "kata sandi"; string to_email_address_1 = "[email protected]";/* Informasi opsional*/string to_email_address_2 = "excleon.com"; {/* Situasi Penggunaan 1, Penggunaan Normal*/MailSenderConfig C = MailSenderConfig baru (SMTP_MAIL_HOST, "Ini adalah surat untuk Tes Java Mail Framework di Case1.", "Ini konten.", Email_username); c.setusername (email_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_address_2); c.addccmail Lampiran (file baru ("d: /1.txt"))); mailsender ms = mailsender baru (c); ms.send (); System.out.println ("dikirim ...");}@testpublic void case2 () lemparan yang diperlengkapi {/* usage 2. Dalam lebih banyak kasus, pengaturan yang dibuat oleh kelas tidak memenuhi persyaratan {/* mime 2. Properties*/mailsenderconfig c = new MailSenderConfig (smtp_mail_host, "Ini adalah surat untuk Tes Java Mail Framework di Case2.", "Ini konten.", Email_username); c.setusername (email_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_address_2); c.addccmail Lampiran (file baru ("d: /1.txt"))); mailsender ms = mailsender baru (c); mimemessage pesan = ms.getmessage (); message.setContent ("Ini adalah konten yang diganti dengan mimemessage di case2.", "Teks/html; charset = UTF-8"); ms.setMessage (pesan); ms.send (); System.out.println ("terkirim ...");}@testpublic void case3 () Melemparkan Sesi yang sama, Anda akan dikurangi beberapa kali, dan sesi tersebut dapat dikurangi dengan Sesi, dan SITION SITURE SIGNION KALI KALI beberapa kali, dan sesi dapat diadakan pada Sesi, Anda akan dikurangi dengan Sesi. Untuk memperhatikan ketepatan waktu sesi yang di -cache*/mailsenderconfig c = MailSenderConfig baru (smtp_mail_host, "Ini adalah surat pertama untuk Tes Java Mail Framework untuk berbagi sesi dalam kasus3.", "Ini konten.", Email_username); c.setusername (email_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_address_2); c.addccmail Lampiran (file baru ("d: /1.txt"))); session sesi = mailsender.initsession (c); mailsender ms = mailsender baru (c, sesi); ms.send (); c.setsubject ("Ini adalah surat kedua untuk uji java mail framework untuk berbagi dalam case3."); C.setcontent ("ini konten Java Mail untuk berbagi dalam case3."); C.setcontent ("ini konten Java Mail untuk berbagi dalam case3."); C.setcontent ("ini konten Java mail.") sesi); ms.send (); System.out.println ("terkirim ...");}} Meringkaskan
Saat ini, ada begitu banyak kebutuhan yang saya miliki. Jika saya menemukan kebutuhan umum lainnya di masa depan dan punya waktu, saya akan menambahkannya lebih lanjut.
Di atas adalah ringkasan kebutuhan umum mengirim email di Java yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!