Le téléchargement et le téléchargement des pièces jointes, l'envoi de messages texte et l'envoi d'e-mails sont toutes des fonctions très couramment utilisées dans le programme. J'ai enregistré le téléchargement et le téléchargement de fichiers et envoyé des SMS. Depuis que j'étais occupé récemment, je n'ai pas eu le temps de faire l'e-mail d'envoi de fonction. Maintenant, j'ai finalement envoyé des e-mails à l'e-mail QQ avec 163 boîtes aux lettres. Voici les codes pertinents. Pour plus de détails, veuillez consulter les commentaires dans le code:
test de package; import java.util.arraylist; Importer java.util.date; Importer java.util.list; import java.util.properties; import java.util.regex.matcher; import java.util.regex.pattern; import javax.mail.address; import javax.mail.authenticator; Importer javax.mail.bodyPart; import javax.mail.mesage; Importer javax.mail.passwordAuthentication; Importer Javax.mail.Session; Importer javax.mail.transport; Importer javax.mail.internet.internetAddress; Importer javax.mail.internet.mimeBodyPart; Importer javax.mail.internet.mimeMessage; Importer javax.mail.internet.mimemultupartit; Importer com.sun.mail.util.mailssslsocketfactory; /// * / * // * @author tuzongxun123 // * @description mail Envoyer la classe de test // * / public class SendmailTest {public static void main (String [] args) lève une exception {// Properties d'informations de configuration pro = nouvelles propriétés (); pro.put ("mail.smtp.host", "smtp.163.com"); pro.put ("mail.smtp.auth", "true"); // SSL Encryption MailSSLSocketFactory SF = NULL; sf = new MailSSLSocketFactory (); // Définissez Trust Tous les hôtes sf.setTrustAllHosts (true); pro.put ("mail.smtp.ssl.enable", "true"); pro.put ("mail.smtp.ssl.socketfactory", sf); // Construisez une session pour envoyer des e-mails en fonction des propriétés de session de l'e-mail. Il convient de noter ici que le nom d'utilisateur ne peut pas être suffixé, sinon ce ne sera pas le nom d'utilisateur. // Il convient également de noter que le mot de passe ici n'est pas le mot de passe de connexion de la boîte aux lettres normalement, mais un autre code d'autorisation spécial généré par le client MailAuthenticator Authizer = new MailAuthenticator ("Tuzongxun123", "Client Authorization Code"); Session Session = Session.getInstance (Pro, Autorizer); // Construire des informations par e-mail basées sur le message de session Message = new MimeMessage (session); // Créer une adresse d'adresse de l'expéditeur par e-mail à partir de = new InternetAddress ("[email protected]"); // Définissez l'expéditeur de l'e-mail.SetFrom (From); // Vérifiez la liste des adresses e-mail du destinataire <string> toaddresslist = new ArrayList <> (); ToaddressList.add ("[email protected]"); StringBuffer Buffer = new StringBuffer (); if (! toaddresslist.isempty ()) {String regex = "^ ([a-z0-9a-z] + [- | //.]?) + [a-z0-9a-z] @ ([a-z0-9a-z] + (- [a-z0-9a-z] +)? //.) + [a-za-z] {2,} $"; Pattern p = motif.compile (regex); for (int i = 0; i <toaddressList.size (); i ++) {Matcher Match = p.matcher (ToaddressList.get (i)); if (match.matches ()) {buffer.append (toaddressList.get (i)); if (i <toaddresslist.size () - 1) {buffer.append (","); }}}}} String Toaddress = Buffer.ToString (); if (! toaddress.isempty ()) {// Créez l'adresse du destinataire de l'adresse de message [] à = InternetAddress.Parse (Toaddress); // Définissez l'adresse du destinataire de l'e-mail Message.SetRcipients (message.recipentType.to, vers); // Sujet par e-mail // message.SetSubject ("Test de courrier Java"); Message.SetSubject ("Pourquoi est faux"); // Contater de courriel mimemultupart mimeMultupart = new mimeMultupartip (); // Définit HTML BOOLDPART BOOLDPART = new MIMEBODYPART (); // Mail Content // String htmltext = "Java Email Test 111"; String htmlText = "Pourquoi est-ce mal"; bodyPart.setContent (htmltext, "text / html; charset = utf-8"); mimeMultupar.AddbodyPart (bodyPart); // Ajouter une liste de pièces jointe <string> fileaddressList = new ArrayList <string> (); fileaddressList .add ("c: // utilisateurs // tuzongxun123 // bourse // new Microsoft Office word document.docx"); if (fileaddressList! = null) {bodyPart attachPart = null; pour (int i = 0; i <fileaddressList.size (); i ++) {if (! fileaddressList.get (i) .iSempty ()) {attachPart = new MIMEBODYPART (); // Source de données d'attachement DataSource Source = new FileDataSource (fileaddressList.get (i)); // Ajouter la source de données d'attachement au corps de courrier attachPart.SetDatahandler (nouveau datahandler (source)); // Définissez le nom de la pièce jointe sur le nom de fichier d'origine attachPart.SetFileName (mimeutility.encodeText (source .getName ())); mimeMultupar.AddbodyPart (attchpart); }}} message.setContent (miMemultupar); message.sesentDate (new Date ()); // Enregistrer un e-mail.saveChanges (); // Envoyer un e-mail transport.send (message); }}} Class MailAuthenticator étend Authenticator {/ ** * nom d'utilisateur * / Nom d'utilisateur de chaîne privée; / ** * mot de passe * / mot de passe de chaîne privée; / ** * Créez une nouvelle instance MailAuthenticator. * * @param nom d'utilisateur * @param mot de passe * / public mailAuthenticator (String username, String Motword) {this.username = username; this.password = mot de passe; } public String getPassword () {return mot de passe; } @Override Protected PasswordAuthentication GetPasswordAuthentication () {return new PasswordAuthentication (nom d'utilisateur, mot de passe); } public String getUserName () {return username; } public void setPassword (String Motword) {this.password = mot de passe; } public void setUsername (String username) {this.userName = username; }}Remarque: Un de mes collègues a utilisé mon code pour le remplacer par son compte et son code d'autorisation client. Il a signalé une erreur dès qu'il l'a couru. Il a ensuite réinitialisé le code d'autorisation client de l'adresse e-mail et l'erreur a disparu.
Ce qui précède concerne cet article, j'espère qu'il sera utile pour tout le monde d'apprendre la programmation Java.