Envoyer un e-mail simple basé sur SMTP
Tout d'abord, un authentificateur est nécessaire:
Package NO001_SMTP Mail texte basé sur le SMTP; Importer javax.mail.authenticator; Importer javax.mail.passwordAuthentication; public class SimpleAuthenticator étend Authenticator {Private String Name; Private String Motword; public SimpleAuthenticator (String Username, String Motword) {super (); this.UserName = userpasswame; this.password = mot de passe;} ProtordwordSway ProtoryAntication GetPassAw {return new PasswordAuthentication (nom d'utilisateur, mot de passe);}} Ensuite, écrivez un programme d'envoi de courriels simples:
Package NO001_ Mail texte basé sur SMTP; Importer java.util.properties; import javax.mail.message; import javax.mail.message; import javax.mail.messagingException; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.address; import javax.mail.internet.internetaddress; javax.mail.internet.mimeMessage; classe publique SmtpSimplemail {public static void main (String [] args) lève la conception d'adressage, MessagedException {/ * Informations requises * / String smtp_mail_host = "smtp.163.com"; // Cette adresse de serveur de messagerie, accédez à l'e-mail pour requérir une chaîne email_username = "[email protected]"; chaîne e-mail_password = "mypassword"; chaîne vers_email_address = "[email protected]"; / * Informations de serveur * / Properties props = Smtp_mail_host); props.put ("mail.smtp.auth", "true"); / * créer la session * / session session = session.getDefaultInstance (accessoires, nouveau message simpliauthenticat InternetAddress (email_userName)); message.AdDreciPient (message.recipentType.to, new InternetAddress (to_email_address)); message.setsubject ("comment utiliser le courrier java pour envoyer un e-mail. (Titre) (001)"); message.settex Transport.send (message); System.out.println ("Ce n'est pas particulièrement malchanceux, vous pouvez vérifier l'e-mail.");}} Que dois-je faire si j'envoie divers destinataires, CC, CC secret
L'authentificateur est utilisé, omis.
En fait, il s'agit de configurer, d'ajouter plusieurs destinataires, des expéditeurs CC et des expéditeurs CC secrets:
Package NO002_POS devrais-je faire si divers expéditeurs et destinataires envoient CC au CC; Importer java.io.unsupportEnCoDingException; import java.util.properties; import javax.mail.address; import javax.mail.message; importer javax.mail.mesage; javax.mail.internet.internetAddress; import javax.mail.internet.mimeMessage; classe publique sendmailwithMultipeople {public static void main (string [] args) lève la conception d'adresse, messageXException, unportdedencodingException {/ * requise * / string smtp_mail_host = "smtp.16.com". // Cette adresse de serveur de messagerie, accédez à l'e-mail auquel il appartient à la recherche String e-mail_username = "[email protected]"; chaîne email_password = "mypassword"; chaîne vers_email_address_1 = "[email protected]"; chaîne cc_email_address_1 = "exemple. Informations * / Properties props = new Properties (); props.put ("Mail.smtp.host", smtp_mail_host); props.put ("Mail.Smtp.auth", "true"); / * Créer session * / session session = session.getDefaultInstance (Props, New Simpathenticat SenderArray = nouvelle adresse [1]; SenderArray [0] = new InternetAddress ("[email protected]", "Nick Huang"); / * Message e-mail * / MIMEMESSAGE = Message NEW MIMEMESSAGE (SESSION); Message.Addfrom (SenderArray); Message.Addrecicipient (message.recipentType.to, newswearaddress (to to_adress_1); Message.AdDrecicipient (message.recipentType.to, nouveau InternetAddress (CC_EMAIL_ADDRESS_1)); message.AdDrecicipient (message.recipentType.cc, nouveau InternetAddress (CC_EMAIL_ADDRESS_1)); Message.AdDrecicipient (message.recipentType.cc, nouveau InternetAddress (TO_EMAIL_ADDRESS_1)); Message.AdDrecicipient (message.recipentType.bcc, nouveau InternetAddress (BCC_EMAIL_ADDRESS_1)); Message.SetSubject ("Je suis un courrier java d'apprentissage par courrier"); Message.setText ("Je suis un courrier java d'apprentissage par courrier, veuillez me donner un bon départ."); // Envoyer Transport.Send (message); System.out.println ("Pas particulièrement malchanceux, vous pouvez vérifier l'e-mail.");}} Que faire si vous envoyez des pièces jointes
L'authentificateur est utilisé, omis.
Envoyer une démonstration de pièce jointe:
Package NO003_ que faire si vous envoyez des pièces jointes; Importer java.io.file; importer java.io.unsupportedEncodingException; import java.util.properties; import javax.activation.datahandler; import javax.activation.datasource; import javax.activation.filedatasource; import javax.mail.address; import javax.mail. javax.mail.mesage; import javax.mail.messagingException; import javax.mail.multiparpart; import javax.mail.session; import javax.mail.transport; import javax.mail.interntet.addressException; import javax.mail.internet.internetDress; importation javax.mail.interset. javax.mail.internet.mimeMessage; Importer javax.mail.internet.mimeMultupart; classe publique SendmailWithAttachment {public static void Main (String [] args) lève des conception d'adresse, MessageSException, non soutenu // Cette adresse de serveur de messagerie, accédez à l'e-mail pour requérir une chaîne e-mail_username = "[email protected]"; chaîne e-mail_password = "mot de passe"; chaîne vers_email_address_1 = "[email protected]"; / * Informations de serveur * / Properties props = nouvelles propriétés (); pro.put ("mail.smtp.host", Smtp_mail_host); props.put ("mail.smtp.auth", "true"); / * création de session * / session session = session.getDefaultInstance (accessoires, new SimpleAuthenticator (email_Username, email_password)); / * Sender * / Address [] SenderArray = new [1]; SenderArray [0] = new InternetAddress (email_username); / * e-mail * / mimeMessage Message = new MIMEMSSAGE (session); message.addfrom (SenderArray); message.addrecicipient (message.recipentType.to, new Internetddress (TO_EMAIL_ADDRESS_1)); BodaSter = NewPar MimeBodyPart (); bodyPart.seTText ("Ceci est le contenu d'un e-mail d'apprentissage Java Mail, veuillez lui donner beaucoup d'argent."); / * Pièce jointe * / bodyPart PiédAttaSpart1 = new MimeBodyPart (); DataSource Source = New FiledataSource (new ("d: / file 1.txt"); Datahandler (source)); attachmentPart1.setFileName ("=? Gbk? B?" + New Sun.Misc.Base64Encoder (). Encode ("File 1.txt" .getBytes ()) + "? ="); BodyPart PiatmentPart2 = new MIMEBODYPART (); Source = New FileDatasource (nouveau fichier ("D: / Fichier: Fichier 2.txt ")); attachmentPart2.SetDatahandler (new Datahandler (source)); attachmentPart2.SetFileName (" =? Gbk? B? "+ New Sun.Misc.Base64Encoder (). EncodArt (" File 2.txt ".getBytes ()) +"? = "); Multipart multipart = new MIMEMULPART (); Multipart.AddBodyPart (BodyPart); Multipart.AddBodyPart (PiècesPart1); Multipart.AddBodyPart (PiéplatementPart2); Message.SetContent (Multipart); // Envoyer Transport.Send (Message)). Envoyez également HTML Mail
L'authentificateur est utilisé, omis.
En fait, il s'agit de dire au client du destinataire d'analyser et de rendre avec HTML:
Package NO004_SEND HTML Mail; Importer java.io.unsupportedEncodingException; import java.util.properties; importer javax.mail.address; import javax.mail.mesage; import javax.mail.messagingException; import javax.mail.multipl; import; javax.mail.internet.addressException; importer javax.mail.internet.internetaddress; import javax.mail.internet.mimebodyPart; import javax.mail.internnet.mimeMessage; import javax.mail.internet.mimemultustr lance AddressException, MessageSingException, UnsupportDenCcodingException {/ * Informations requises * / String smtp_mail_host = "smtp.163.com"; // Cette adresse de serveur de messagerie, accédez à l'e-mail auquel vous appartenez à la recherche de chaîne e-mail_username = "[email protected]"; chaîne e-mail_password = "mot de passe"; String to_email_address_1 = "[email protected]"; / * Informations de serveur * / Properties props = new Properties (); props.pt.put (mail.smtp.host ", Smtp_mail_host); props.put ("mail.smtp.auth", "true"); / * création de session * / session session = session.getDefaultInstance (accessoires, new SimpleAuthenticator (email_Username, email_password)); / * Sender * / Address [] SenderArray = new [1]; SenderArray [0] = new InternetAddress (email_username); / * e-mail * / mimeMessage Message = new MIMEMSSAGE (session); message.addfrom (SenderArray); message.addrecicipient (message.recicipentType.to, new InternetAddress (TO_EMAIL_ADDRESS_1); BodyPart = new MIMEBODYPART (); bodyPart.setContent ("<h1> vous aimer ... </h2>", "Text / Html; charSet = GB2312"); / * Encapsuler les informations de diverses parties de l'e-mail * / multipart multipart = new MIMMEMMULTPART (); multipart. Transport.Send (message); System.out.println ("Ce n'est pas particulièrement malchanceux, vous pouvez vérifier l'e-mail. ");}} Ou venez avec une classe d'outils?
L'authentificateur est certain, utilisé et omis.
Puisqu'il existe des propriétés nombreuses et compliquées qui doivent être définies, nommez-la avec un attribut simple et facile à utiliser pour le vôtre, alors utilisez une classe de configuration
Package NO005_ge une classe d'outils; import java.io.file; import java.util.arraylist; import java.util.list; public class mailSenderConfig {private string smtpmailhost; // Adresse du serveur de messagerie qui prend en charge le protocole SMTP / * Utilisé pour se connecter au serveur de messagerie * / nom d'utilisateur de chaîne privée; mot de passe de chaîne privé; // Title Contenu de la chaîne privée; // Content Private String FromMail; // Afficher les e-mails envoyés à partir de cette liste privée de boîte aux lettres <string> Tomails; // Liste privée du destinataire <string> ccmails; // cc Liste privée <string> bccmails; // Secret CC Private List <Fichier> Pièces jointes; // pièce jointe MailSenderConfig (String smtpmailHost, String Sujet, String Content, String FromMail) {super (); smtpmailhost = smtpmailhost; this.subject = sujet; this.Content = contenu; this.frommail = froMail;} public String getSmtpmailhost () {return smtpmailhost;} public void setsmtpmailhost (string smtpmailhost) {smtpmailhost = smtpmailhost;} public string getUsername () {return username;} public void seser nom d'utilisateur;} public String getPassword () {return mot de passe;} public void setPassword (chaîne mot de passe) {this.password = mot de passe;} public String getFrommail () {return FromMail;} public void setFrommail (String FromMail) {this.frommail = FromMail;} public List <String> GetToMails () {return tomails SettoMails (list <string> tomails) {this.tomails = tomails;} list public <string> getccmails () {return ccmails;} public void setccmails (list <string> ccmails) {this.ccmails = ccmails;} public list <String> getBccMails () {return bccMails; setBccMails (list <string> bccmails) {this.bccmails = bccmails;} public list <FichE> getattachments () {return jatthements;} public void setAttachments (list <file> joints) {this.attachments = joints;} public string getSubject () {return subject;} public Void SetSubject (String Subject) {this. Sujet;} public String getContent () {return Content;} public void setContent (String Content) {this.content = contenu;} public void addTomail (String mail) {if (this.tomails == null) {this.tomails = new ArrayList <string> ();} this.tomails.add (mail);} (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.addd (mail); addAttachment (fichier f) {if (this.attachments == null) {this.attachments = new ArrayList <Fichier> ();} this.attachments.add (f);}} Enfin, il y a la partie de la classe d'outils, qui est principalement responsable de plusieurs choses: effectuer certaines actions d'initialisation en fonction des règles de messagerie Java, traduire des classes de configuration d'attribut personnalisées, les définir avec des règles de messagerie Java et envoyer des e-mails.
De plus, il convient de mentionner que parce que les propriétés fournies par la classe d'outils sont limitées, d'autres cas peuvent ne pas répondre aux besoins, donc le mimeMessage est exposé. Si les besoins ne sont pas satisfaits, les développeurs peuvent les traiter et les configurer eux-mêmes, tandis que d'autres pièces peuvent toujours utiliser la classe d'outils.
Package NO005_ge une classe d'outils; import java.io.file; import java.util.properties; import javax.activation.datahandler; import javax.activation.datasource; import javax.activation.filedatasource; import javax.mail.address; import javax.mail.bodypart; import javax.mail.Message; import javax.mail.messagingException; import javax.mail.multupart; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimebodyPart; import javax.mail.internet.mimemessage; import; javax.mail.internet.mimemultupart; Import no002_what devrais-je faire si divers expéditeurs et destinataires envoient CC.Simpleauthenticator; public MailSender {Private MailSenderConfig c; private mimeMessage Message; public MailSender (MailSenderConfig Config) lance une exception {super (); this.c = config; this.SetConfig (); Initialisation * @ return * / private session initsession () {Properties props = new Properties (); if (c.getsmtpmailhost ()! = Null && c.getsmtpmailhost (). Length ()> 0) {props.put ("mail.smtp.host", c.getsmtmails ());} if (c.getame ()! c.GetUserName (). Length ()> 0 && c.getpassword ()! = null && c.getpassword (). length ()> 0) {props.put ("mail.smtp.auth", "true"); return Session.getDefaulTinstance (props, new SimpleAuthenticat {props.put ("mail.smtp.auth", "false"); return session.getDefaultInstance (props);}} / *** Set Java Mail Properties * @throws exception * / private void setConfig () lance l'exception {this.configValid (); session s = this.inites FromMailArray = nouvelle adresse [1]; FromMailArray [0] = new InternetAddress (c.GetFrommail ()); Message.AddFrom (FromMailArray); if (c.getTomails ()! = null && c.gettomails (). size ()> 0) {for (String Message: C.GetToMails ())) gens InternetAddress (mail));}} if (c.getTomails ()! = Null && c.getTomails (). Size ()> 0) {for (String Mail: c.getTomails ()) {message.addrecicipient (message.recicipientType.bcc, new InternetAddress (mail));}} // Message.SetSubject (c.getSubject ()); / * text * / mimeBodyPart bodyPart = new MIMEBODYPART (); bodyPart.setContent (c.getContent (), "Text / Html; charSet = GB2312"); / * Encapsule d'informations de chaque partie de l'e-mail * / multipart multipart = new MiMemultupart (); multipart.addbodyPart (bodyPart); message.setContent (multipart); bodyPart attachmentPart = null; dataSource ds = null; if (c.getAttachments ()! = Null && c.getAttachments (). Size ()> 0) {for (fichier f: c.getAttachments ()) {rattachement) Nouveau filedataSource (f); attachmentPart.SetDatahandler (new Datahandler (ds)); attachmentPart.setFilename ("=? gbk? b?" + new Sun.Misc.base64Encoder (). Encode (f.getName (). GetBytes ()) + "? ="); multipart.addbodyPart (attachmentPart);}} message.setContent (multipart);} / *** Configuration Verification * @throws exception * / private void configValid () lève exception {if (c == null) {lance une nouvelle exception ("l'objet de configuration est vide");} if (c.getsmtpma c.getsmtpmailhost (). Length () == 0) {lancer une nouvelle exception ("Smtp Server est vide");} if (c.getFrommail () == null && c.getFrommail (). Length () == 0) {lancer une nouvelle exception ("Sender Mail est vide");} if (c.getToMails () == Null || {lancer une nouvelle exception ("Le courrier des destinataires est vide");} if (c.getSubject () == null || c.getSubject (). Length () == 0) {New Exception ("le titre de messagerie est vide");} if (c.getContent () == null || c.getContent (). @throws messingException * / public void Send () lève MessageSingException {Transport.Send (message);} / *** Définissez MimeMessage pour exposer cet objet afin que les développeurs puissent définir des propriétés personnalisées par eux-mêmes * @ return * / public mimeMessage GetMessage () {retour du message; void setMessage (message mimeMessage) {this.message = message;}} Fournir un package de classe de test simple NO005_po une classe d'outils; import java.io.file; import javax.mail.internet.mimeMessage; public class testCall {public static void main (String [] args) lève une exception {/ * des informations requises * / chaîne smtp_mail_host = "smtp.163.com";; // Cette adresse de serveur de messagerie, accédez à l'e-mail à laquelle vous appartenez et vérifiez la chaîne e-mail_username = "[email protected]"; chaîne e-mail_password = "mot de passe"; chaîne vers_email_address_1 = "[email protected]"; chaîne à_email_address_2 = "Exemple. MailSenderConfig (SMTP_MAIL_HOST, "Ceci est le test de test pour le framework mail Java 3.", "Ceci est le contenu 3.", Email_Username); c.SetUserName (e-mail_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_1); c.addddccmail (to_email_address_1); Fichier ("d: /1.txt")); MailSender ms = new MailSender (c); MmeSend (); System.out.println ("Send ..."); * // * Utilisation 2. Dans plus Test Mail pour tester le cadre du courrier Java 4. "," Ceci est le contenu 4. ", Email_Username); c.SetUserName (e-mail_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_1); c.addddccmail (to_email_address_1); File ("d: /1.txt")); MailSender ms = new MailSender (c); mimeMessage Message = Ms.GetMessage (); message.setContent ("Ceci est le contenu remplacé par MimeMessage 4.", "text / html; charset = utf-8"); Ms.SetMessage (message); Ms.Send (); System.out.println ("Send ...");}} Mettre à niveau la classe d'outils
Dans une utilisation réelle, j'ai constaté que lors de l'envoi d'e-mails par lots, la prise en charge de la classe d'outils n'est pas bonne. Par exemple, en envoyant 100 e-mails, selon la logique de la classe d'outils ci-dessus, une connexion est établie pour chaque e-mail envoyé. Alors, n'est-ce pas 100 e-mails 100 fois? Il s'agit d'un gaspillage sérieux.
Ainsi, certaines mises à niveau sont apportées à ce point:
L'authentificateur est certain, utilisé et omis.
Classe de configuration
import java.util.arraylist; import java.util.list; classe publique MailSenderConfig {chaîne privée smtpmailhost; // Adresse du serveur de messagerie qui prend en charge le protocole SMTP / * Utilisé pour se connecter au serveur de messagerie * / nom d'utilisateur de chaîne privée; mot de passe de chaîne privé; // Title Contenu de la chaîne privée; // Content Private String FromMail; // Afficher les e-mails envoyés à partir de cette liste privée de boîte aux lettres <string> Tomails; // Liste privée du destinataire <string> ccmails; // Liste privée CCP <string> bccmails; // Liste privée Secret CCP <Siptation> pièces jointes; // pièce jointe private string contenuType = "text / html; charset = utf-8"; / *** constructeur * @param smtpmailhost smtp server * @param title sujet * @param contenu contenu (envoyé sous forme de "text / html; charset = utf-8" par défaut) * @param frommail adresse * / public mailsenderConfig (string smaihost, STRINDAD ADRESS * / public MailSenderConfig (String Smtmail, STRIND ADRESS * / public MailSenderConfig (String SMTMail, STRIND ADRESS * / PUBLICAL Sujet, String Content, String FromMail) {super (); smtpmailhost = smtpmailhost; this.subject = sujet; this.Content = contenu; this.frommail = FromMail;} / *** Constructeur * @param smtpmailhost SMTP Server * @Param Username Mail Server Username @Param Motway Mail Server Mot de passe * @param Titre du sujet * @param Contenu Contenu (envoyé dans le formulaire "Text / HTML; Charset = UTF-8" par défaut) * @Param FromMail Adresse * Nom d'utilisateur de chaîne, mot de passe de chaîne, sujet de chaîne, contenu de chaîne, chaîne FromMail) {super (); smtpmailhost = smtpmailhost; this.userName = nom d'utilisateur; this.password = mot de passe; this.subject = sujet; this.Content = contenu; 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.addd (that);} public vide addition {this.attachments = new ArrayList <Sietment> ();} this.attachments.add (a);} / ** getter and seter * / public string getSmtpmailhost () {return smtpmailhost;} public void setsmtpmailhost (string smtpmailst) {smtpmails = smtpmailhost;} String getUserName () {return username;} public void setUsername (String username) {this.userName = username;} public String getPassword () {return password;} public void SetPassword (String Password) {this.password = public void SetFrommail (String) FromMail;} Liste publique <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;} Liste <string> getBccMails () {return bccmails;} public void setBccmails (list <string> bccmails) {this.bccmails = bccmails;} public list <Sipos> getattachments () {return jatthets;} public void setattachments (list <jirets> pièces jointes) {this.attachments = joints; {return sujet;} public void SetSubject (String Subject) {this.subject = sujet;} public String getContent () {return Content;} public void setContent (String Content) {this.content = contenu;} public string GetContentType () {return contenuSype;} public vide SetContentType (String ContentType) ContentType;}} Pièce entité classe Import Java.io.file; / *** Email Pièce de pièce Classe d'entité * / classe publique Pièce jointe {fichier privé Fichier Private String FileName; Public File GetFile () {return fichier;} public String GetFilename () {File If (filename == Null | filename.trim (). Length () == 0) {return file.getName ();} return filename;} public void setFileName (String filename) {this.filename = nom de filen;} public joint (fichier fichier, filename) {super (); {super (); this.file = fichier;}} abstract envoying classe import java.util.properties; import javax.mail.session; public abstract class abstractSessionMailsender {session protégée; / *** initialize session * @ return * / public static session initsession (c.getsmtpmailhost ()! = null && c.getsmtpmailhost (). Length ()> 0) {props.put ("mail.smtp.host", c.getsmtpmailhost ());} if (c.gesername ()! = null && c.gesername (). Length ()> 0 && c.getpass ()! C.GetPassword (). Length ()> 0) {props.put ("mail.smtp.auth", "true"); return session.getDefaultInstance (props, new SimpleAuthenticator (c.GetUserName (), c.getPassword ()));} else {proS.put ("mail.smtp.auth", "false"); Session.getDefaultInstance (accessoires);}} / *** Exposez Getter et Setter pour fournir la définition de la session pour prendre en charge l'envoi par lot d'e-mails / envoyer plusieurs e-mails, la session peut être mise en cache. @ return * / public session getSession () {return session;} public void setSession (session session) {this.session = session;}} Envoyer des cours
Importer javax.activation.datahandler; import javax.activation.datasource; import javax.activation.filedatasource; import javax.mail.address; import javax.mail.bodyPart; import javax.mail.message; import; Javax.mail.Session; import javax.mail.transport; import javax.mail.internet.internetAddress; import javax.mail.internet.mimebodypart; import javax.mail.internet.MimeMessage; import javax.mail.internet.mimeMultupart; import Javax.mail.internet. étend AbstractSessionMailSender {private MailSenderConfig C this.setConfig ();} public MailSender (MailSenderConfig Config, Session Session) lève une exception {super (); this.c = config; this.setConfig (); Super.SetSession (session);} / *** Envoyer un e-mail * @throws messingException * / public void Send () lève MessageSingException {Transport.Send (message);} / *** Get MimeMessage et exposer cet objet pour faciliter le développeur pour définir des propriétés personnalisées (les méthodes qui ne sont pas soutenues par cette classe d'outils peuvent être définies par le développeur elles getMessage () {return Message;} / *** Définissez MimeMessage pour exposer cet objet pour faciliter les développeurs pour définir des propriétés personnalisées (les méthodes qui ne sont pas prises en charge par cette classe d'outils peuvent être définies par les développeurs eux-mêmes, et après les configurer) * @ return * / public void setMessage (MIMEMessage Message) {this.sessage = message;} / *** Set Set Java Message Cattaches * @hrows; setConfig () lève une exception {this.configValid (); if (session == null) {session = initsession (c);} message = new mimeMessage (session); / * Sender * / adresse [] FromMailArray = new adress [1]; FromMailarray [0] = new InternetDress (c.getFrommail ()); Message.AddFrom (FrommFrom); (c.getToMails ()! = null && c.getTomails (). size ()> 0) {for (String Mail: C.GetToMails ()) {message.AdDrecipient (message.RecipentType.to, new InternetAddress (mail));}} if (c.getccmails ()! = null && c.getccmails (). Mail: c.getccmails ()) {message.AdDreciPient (message.recipentType.cc, new InternetAddress (mail));}} if (c.getTomails ()! = null && c.getTomails (). size ()> 0) {for (String Message: C.GetToMails,) {Message.AdDreciPIENT (message. InternetAddress (Mail));}} // e-mail Title Message.SetSubject (C.GetSubject ()); / * Text * / MIMEBODYPART BODYPART = NEW MIMEBODYPART (); BodyPart.SetContent (C.GetContent (), C.GetContentType (); / * Encapsulat Informations de chaque partie de l'e-mail * / Multipart MimeMultupart (); multipart.addbodyPart (bodyPart); message.setContent (multipart); / * attachement * / bodyPart attachmentPart = null; dataSource ds = null; if (c.getAttachments ()! = Null && c.getAttachments (). Size ()> 0) {for (fixation a: c.getAttachments ()) MimeBodyPart (); ds = new FiledataSource (a.getFile ()); attachmentPart.SetDatahandler (new Datahandler (ds)); connexionPart.SetFileName (mimeutility.encodetext (a.getFilename ())); multipart.addbody (attachementPart);}}} message.SetContent (} / *** Vérification de la configuration * @throws exception * / private void configValid () lève une exception {if (c == null) {throw nouvelle exception ("l'objet de configuration est vide");} if (c.getsmtpmailhost () == null || c.getsmtpmailhost (). Length () == 0) {lancer une nouvelle exception ("Smtp Server est vide");} if (c.getFrommail () == null && c.getFrommail (). Length () == 0) {lancer une nouvelle exception ("Sender Mail est vide");} if (c.getToMails () == Null || {lancer une nouvelle exception ("Le courrier des destinataires est vide");} if (c.getSubject () == null || c.getSubject (). Length () == 0) {New Exception ("le titre de messagerie est vide");} if (c.getContent () == null || c.getContent (). import java.io.file; import javax.mail.session; import javax.mail.internet.mimeMessage; import org.junit.test; classe publique readme {/ * informations requises * / chaîne smtp_mail_host = "smtp.163.com"; // Cette adresse de serveur de messagerie, accédez à la page Description du serveur de messagerie à laquelle vous appartenez et vérifiez la chaîne e-mail_username = "[email protected]"; chaîne e-mail_password = "mot de passe"; chaîne à_email_address_1 = "exampé Situation d'utilisation 1, utilisation normale * / MailSenderConfig c = new MailSenderConfig (SMTP_MAIL_HOST, "Ceci est un courrier pour tester le cadre de courrier Java dans le cas1.", "Ceci est contenu.", Email_Username); c.SetUserName (e-mail_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_1); c.addddccmail (to_email_address_1); Pièce jointe (nouveau fichier ("d: /1.txt")))); MailSender ms = new MailSender (c); MmeSend (); System.out.println ("Send ...");} @ TestPublic void cas Propriétés * / MailSenderConfig c = new MailSenderConfig (SMTP_MAIL_HOST, "Ceci est un courrier pour tester le cadre de courrier Java dans Case2.", "Ceci est contenu.", Email_Username); c.SetUserName (e-mail_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_1); c.addddccmail (to_email_address_1); Pièce jointe (nouveau fichier ("d: /1.txt"))); MailSender ms = new MailSender (c); mimeMessage Message = Ms.GetMessage (); message.setContent ("Ceci est le contenu remplacé par mimeMessage dans le cas2.", "text / html; charset = utf-8"); Ms.SetMessage (message); Ms.Send (); System.out.println ("Send ...");} @ testpublic void case3 () lève une exception {/ * utilisation par plusieurs fois pour réduire la création répétée * Attention à la rapidité de la session mise en cache * / MailSenderConfig C = nouveau MailSenderConfig (SMTP_MAIL_HOST, "Ceci est le premier courrier pour Test Java Mail Framework pour partager la session dans Case3.", "Ceci est contenu.", Email_Username); c.SetUserName (e-mail_username); c.setpassword (email_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccmail (to_email_1); c.addddccmail (to_email_address_1); Pièce jointe (nouveau fichier ("d: /1.txt"))); session session = MailSender.Initsession (c); MailSender ms = new MailSender (C, Session); MmeSend (); C.SetSubject ("Il s'agit du deuxième courrier pour Test Java Mail Frawork pour partager la session dans Case3."); C.SetContent ("Ceci est contenu 2."); Ms = new mailSender (C, C, C, C, (" session); MmeSend (); System.out.println ("Send ...");}} Résumer
À l'heure actuelle, il y a tellement de besoins que j'ai. Si je rencontre d'autres besoins communs à l'avenir et que j'ai du temps, je les ajouterai plus loin.
Ce qui précède est un résumé des besoins communs de l'envoi de courriels dans Java qui vous est présenté. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!