Cet article partage le code spécifique de Java Web STMP envoyant des e-mails avec des pièces jointes pour votre référence. Le contenu spécifique est le suivant
classe publique MailFileSendUtils {Private Properties Props; // Session privée de propriété système; // Objet de session de messagerie privé mimeMessage mimemsg; // MIME MAIL Object Private Multipart MP; // L'objet multiparticule, le contenu par e-mail, le titre, la pièce jointe et d'autres contenus y sont tous ajoutés, puis l'objet MIMEMessage est généré / ** * Constructeur * @param * / public MailFileSendutils () {props = system.getProperties (); props.put ("mail.smtp.auth", "false"); session = session.getDefaultInstance (accessoires, null); session.setDebug (true); mimemsg = new mimeMessage (session); mp = new mimemMultupart (); } / ** * Constructeur * @param SMTP Mail Sentutils (String Smtp, String Username, String Motword) {props = System.getProperties (); props.put ("mail.smtp.auth", "true"); props.put ("mail.smtp.host", smtp); propuls.put ("nom d'utilisateur", nom d'utilisateur); propuls.put ("mot de passe", mot de passe); session = session.getDefaultInstance (accessoires, null); session.setDebug (true); mimemsg = new mimeMessage (session); mp = new mimemMultupart (); } / ** * Envoyer un e-mail * / public boolean sendmail (String from, String [] to, String Sujet, String Content, String FileName) {try {// Définissez l'expéditeur mimemsg.setFrom (new InternetAddress (from)); // Définissez le destinataire pour (int i = 0; i <to.length; i ++) {mimemsg.setrecipients (message.recipentType.to, InternetAddress.Parse (à [i])); } // set cc // for (int i = 0; i <copyto.length; i ++) {// mimemsg.setRecicipients (message.recipentType.cc, InternetAddress.Parse (copyto [i])); //} // Définit le sujet mimemsg.setsUbject (sujet); // Définit le texte bodyPart bp = new MIMEBODYPART (); bp.setContent (contenu, "text / html; charset = utf-8"); MP.AddBodyPart (BP); // Définir la pièce jointe bp = new MIMEBODYPART (); FileDataSource Files = new FileDataSource (nom de fichier); bp.setDatahandler (nouveau Datahandler (fichiers)); bp.setFileName (mimeutility.encodeText (filedS.GetName (), "utf-8", "b")); MP.AddBodyPart (BP); mimemsg.setContent (MP); mimemsg.savechanges (); // Envoyer un e-mail if (props.get ("mail.smtp.auth"). Equals ("true")) {transport transport = session.getTransport ("smtp"); transport.connect ((string) props.get ("mail.smtp.host"), (string) props.get ("username"), (string) props.get ("mot de passe")); transport.sendMessage (mimemsg, mimemsg.getRecipients (message.recipentType.to)); // Transport.sendMessage (mimemsg, mimemsg.getRecipients (message.recipentType.cc)); transport.close (); } else {transport.send (mimemsg); } System.out.println ("Mail Envoi avec succès"); } Catch (MessagedException e) {// TODO Block de catch généré automatiquement e.printStackTrace (); } catch (UnportEnCoDingException e) {// Bloc de catch généré automatiquement de TODO E.PrintStackTrace (); } return true; } // public void toSendmail (sendmailParam sendmailParam) {// mailfilesendutils e-mail = new MailFilesEntutils (sendmailparam.getsmtp (), sendmailparam.getUserName (), sendmailParam.getFrom ()); // email.sendmail (sendmailParam.getFrom (),); sendmailParam.getto (), sendmailParam.getSubject (), sendmailParam.getContent (), sendmailParam.getFilePath ()); //} public static void main (String [] args) {String smtp = "smtp.exmail.qq.com"; String username = "Envoyer un compte de messagerie"; String mot de passe = "Envoyer un mot de passe de messagerie"; Chaîne de = "Envoyer un e-mail"; String [] vers = {"Adresse e-mail pour recevoir un e-mail"}; // String [] copyto = {"Adresse e-mail CCC"}; String sujet = "Subject 6"; String Content = "Mail Content 6"; String filename = "Fichier joint"; MailFileSendUtils Email = new MailFilesEntutils (SMTP, nom d'utilisateur, mot de passe); // email.sendmail (de, à, copyto, sujet, contenu, nom de fichier); e-mail.sendmail (de, à, sujet, contenu, nom de fichier); }}(pièce jointe: version SSL)
classe publique MailFileSendUtils {Private Properties Props; // Session privée de propriété système; // Objet de session de messagerie privé mimeMessage mimemsg; // MIME MAIL Object Private Multipart MP; // L'objet multiparticule, le contenu par e-mail, le titre, la pièce jointe et d'autres contenus y sont tous ajoutés, puis l'objet MIMEMessage est généré / ** * Constructeur * @param * / public MailFileSendutils () {props = system.getProperties (); props.put ("mail.smtp.auth", "false"); session = session.getDefaultInstance (accessoires, null); session.setDebug (true); mimemsg = new mimeMessage (session); mp = new mimemMultupart (); } / ** * Constructeur * @param SMTP Mail Sentutils (String SMTP, String Username, String Motword) {Security.addProvider (new com.sun.net.ssl.internal.ssl.provider ()); chaîne finale ssl_factory = "javax.net.ssl.sslsocketfactory"; PropS = System.getProperties (); MailSSLSocketFactory SF = NULL; essayez {sf = new MailSSLSocketFactory (); } catch (GeneralSecurityException e) {} sf.setTrustAllHosts (true); props.put ("mail.smtp.auth", "true"); props.put ("mail.smtp.host", smtp); props.put ("mail.smtp.socketfactory.class", ssl_factory); props.put ("mail.smtp.socketfactory.fallback", "false"); props.put ("mail.smtp.ssl.enable", "true"); propuls.put ("mail.smtp.port", "465"); props.put ("mail.smtp.ssl.socketfactory", sf); // props.put ("nom d'utilisateur", nom d'utilisateur); // propuls.put ("mot de passe", mot de passe); session = session.getInstance (accessoires, new Authenticator () {@Override Protected PasswordAuthentication getPasswordAuthentication () {return new PasswordAuthentication (username, mot de passe);}}); session.setDebug (true); mimemsg = new mimeMessage (session); mp = new mimemMultupart (); } / ** * Envoyer un e-mail * / public boolean sendmail (String from, String [] to, String Sujet, String Content, String FileName) {try {// Définissez l'expéditeur mimemsg.setFrom (new InternetAddress (from)); // Définissez le récepteur pour (int i = 0; i <to.length; i ++) {mimemsg.setReccipients (message.recipentType.to, InternetAddress.Parse (à [i])); } // Définir cc // for (int i = 0; i <copyto.length; i ++) {// mimemsg.setRecicipients (message.recipentType.cc, InternetAddress.Parse (copyto [i]); //} // set thème mimemsg.setsubject (subder); // Définit le texte bodyPart bp = new MIMEBODYPART (); bp.setContent (contenu, "text / html; charset = utf-8"); MP.AddBodyPart (BP); // Définir la pièce jointe bp = new MIMEBODYPART (); FileDataSource Files = new FileDataSource (nom de fichier); bp.setDatahandler (nouveau Datahandler (fichiers)); bp.setFileName (mimeutility.encodeText (filedS.GetName (), "utf-8", "b")); MP.AddBodyPart (BP); mimemsg.setContent (MP); mimemsg.savechanges (); // Envoyer un courrier if (props.get ("mail.smtp.auth"). Equals ("true")) {transport transport = session.getTransport ("smtp"); transport.connect ((string) props.get ("mail.smtp.host"), (string) props.get ("username"), (string) props.get ("mot de passe")); transport.sendMessage (mimemsg, mimemsg.getRecipients (message.recipentType.to)); // transport.sendMessage (mimemsg, mimemsg.getRecipients (message.recipentType.cc)); transport.close (); } else {transport.send (mimemsg); } System.out.println ("Mails envoyés avec succès"); } catch (MessageSingException e) {e.printStackTrace (); } catch (UnportEnCcodingException e) {e.printStackTrace (); } return true; } public boolean toSendmail (sendmailParam sendmailParam) {MailFilesendUtils Email = new MailFilesEnDutils (sendmailParam.getsmtp (), sendmailparam.geturname (), sendmailParam.getPassword ()); Email.sendmail (sendmailParam.getFrom (), sendmailParam.getto (), sendmailParam.getSubject (), sendmailParam.getContent (), sendmailParam.getFilePath ()); Retour Vrai; } // public static void main (string [] args) {// chaîne smtp = "smtp.mxhichina.com"; // string username = "emailbox"; // string password = "e-mail mot de passe"; // string from = "qui envoie"; // string [] à = {"envoyer à qui"}; // String [] copieto = {"ccc CCC "Huawei"; // String content = "contenu e-mail 6666"; // string filename = "gdt-3583118353-ad-20170823.xls"; // mailfilesEntutils = new MailFileSendUtilS (Smtp, nom d'utilisateur, contenu); /// e-mail. e-mail.sendmail (de, à, sujet, contenu, nom de fichier); //}} Dans le projet, je commençai la méthode principale, puis j'utilise TOSENDMAIL (SendmailParam SendmailParam).
Le SendmailParam défini ici est:
classe publique sendmailParam {String privé smtp; Nom d'utilisateur de chaîne privée; mot de passe de chaîne privé; chaîne privée de; // Sender String privé [] vers; // destinataire // chaîne [] copyright = {"[email protected]"}; Sujet de chaîne privée; // Sujet par e-mail Contenu de chaîne privée; // Contenu de la chaîne privée FilePath; // Chemin pour obtenir le fichier public SendmailParam () {this.smtp = "smtp.exmail.qq.com"; // Exemple this.username = "Contrat de messagerie"; this.password = "mot de passe e-mail"; this.from = "e-mail"; this.subject = ""; this.Content = ""; this.filepath = ""; } public String getmtp () {return smtp; } public void setsmtp (string smtp) {this.smtp = smtp; } public String getUserName () {return username; } public void setUsername (String username) {this.userName = username; } public String getPassword () {return mot de passe; } public void setPassword (String Motword) {this.password = mot de passe; } public String getFrom () {return de; } public void setFrom (String from) {this.from = from; } public String [] getTO () {return to; } public void setTo (string [] to) {this.to = to; } public String getSubject () {return sujet; } public void setSubject (String Subject) {this.subject = sujet; } public String getContent () {return Content; } public void setContent (String Content) {this.Content = Content; } public String getFilePath () {return filepath; } public void setFilePath (String filepath) {this.filepath = filepath; }}Package de dépendance Maven
<dependency> <groupId> javax.mail </prouprid> <letifactive> mail </etefactId> <in version> 1.4.7 </ version> </Dependency>
Pack de dépendance Gradle
compiler "javax.mail: courrier: 1.4.7"
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.