Les exemples de cet article partagent le code d'implémentation spécifique de la fonction d'envoi et de réception de e-mail pour votre référence. Le contenu spécifique est le suivant
Travaux de préparation, construction de l'environnement:
1. Créez localement un serveur de messagerie
Easymail Server, eyoumailServersEtup.exe
2. Créez un nouveau compte de messagerie
Zhang San a envoyé un e-mail à Li SI.
Étape 1:
Créer un nouveau nom de domaine: outils, paramètres du serveur, entrez itast.com dans la zone de nom de domaine unique
Étape 2:
Créez un nouveau compte de messagerie: [email protected]
[email protected]
3. Installez Foxmail
Configurer le serveur d'envoi d'e-mail (SMTP): localhost 25
Serveur de réception par e-mail (POP3): localhost 110
Créez un nouveau compte et vous pouvez recevoir des e-mails!
Avis
S'il s'agit d'un projet Web, car Javaee est livré avec la fonction de messagerie, il peut y avoir des problèmes!
Nous devons utiliser notre propre fonction de fichier mail.jar! Vous devez supprimer le package de courrier dans Javaee!
utiliser:
Pour le développement de Javamail, introduisez d'abord les fichiers JAR:
activation.jar [Si vous utilisez JDK1.6 ou supérieur, vous ne pouvez pas utiliser ce fichier de jar]
Mail.jar [Email Envoi du package de base]
/ ** * 1. Envoyez un e-mail normal * @author jie.yuan * * / classe publique app_sendmail {@test public void testSend () lève une exception {// 0. Paramètres de courrier Properties Prop = new Properties (); Prop.put ("mail.transport.protocol", "smtp"); // Spécifiez le protocole Prop.put ("Mail.smtp.host", "localhost"); // hôte stmp.qq.com Prop.put ("mail.smtp.port", 25); // port prop.put ("mail.smtp.auth", "true"); // User Motway Authentication Prop.put ("mail.debug", "true"); // Mode de débogage // 1. Créer une session de Session par e-mail Session Session = Session.getDefaultInstance (PROP); // 2. Créer un objet Body Mail (objet e-mail entier) MIMEMESSAGE MESSAGE = NOUVEAU MIMEMESSAGE (SESSION); // 3. Définissez les paramètres du corps du courrier: //3.1 Title Message.SetSubject ("Mon premier e-mail"); //3.2 mail Envoi de l'heure Message.SeSentDate (new Date ()); //3.3 Sender Message.Sender (nouveau InternetAddress ("[email protected]")); //3.4 destinataire Message.SetReccipient (destinataireype.to, nouveau InternetAddress ("[email protected]")); //3.5 Message de contenu.setText ("Bonjour, il a été envoyé avec succès! Text ...."); // Message électronique en texte brut simple.SaveChanges (); // Enregistrer le courrier électronique (facultatif) // 4. Envoyer Transport trans = session.getTransport (); trans.connect ("zhangsan", "888"); // Envoyer un e-mail trans.sendMessage (message, message.getAllrecipients ()); trans.close (); }}Avec des photos
/ ** * Email avec des ressources d'image * @author jie.yuan * * / classe publique app_2sendwithimg {// Paramètres d'initialisation Propriétés statiques privées; // Sender Private Static InternetAddress Sendman = NULL; statique {prop = new Properties (); Prop.put ("mail.transport.protocol", "smtp"); // Spécifiez le protocole Prop.put ("Mail.smtp.host", "localhost"); // hôte stmp.qq.com Prop.put ("mail.smtp.port", 25); // port prop.put ("mail.smtp.auth", "true"); // User Motway Authentication Prop.put ("mail.debug", "true"); // mode de débogage essayez {sendman = new InternetAddress ("[email protected]"); } catch (AddressException e) {lancer une nouvelle RuntimeException (e); }} @Test public void testSend () lève une exception {// 1. Créer une session de session de messagerie Session = session.getDefaultInstance (PROP); // 2. Créer un message d'objet MAIN MIMEMESSAGE = new MimeMessage (session); // 3. Définir les paramètres: titre, expéditeur, destinataire, temps d'envoi, contenu message.SetSubject ("mail avec image"); Message.SetSender (Sendman); Message.SetReccipient (destinataireType.to, nouveau InternetAddress ("[email protected]")); message.sesentDate (new Date ()); / *******. // 4.2 Créez le contenu du bloc de messagerie multi-fonctions = Texte sur la ressource d'image gauche + sur le contenu MIMEBodyPart droit = new MIMEBODYPART (); MIMEBODYPART RESSOURCE = new MIMEBODYPART (); // Définir le contenu spécifique: a. Ressource (image) chaîne filepath = app_2sendwithimg.class.getResource ("8.jpg"). GetPath (); DataSource ds = new FiledAdAtaSource (nouveau fichier (filepath)); DATAHANDLER Handler = nouveau Datahandler (DS); Resource.setDatahandler (gestionnaire); ressource.setContentid ("8.jpg"); // Définissez le nom de la ressource et référence à la touche étrangère // Définissez le contenu spécifique: b. Text contenu.setContent ("<img src = 'cid: 8.jpg' /> ok!", "Text / html; charset = utf-8"); liéd.addbodyPart (contenu); liéd.addbodyPart (ressource); /********* .4.3 Ajoutez les e-mails complexes construits aux e-mails ******* / message.setContent (lié); // 5. Envoyer le transport trans = session.getTransport (); trans.connect ("zhangsan", "888"); Trans.SendMessage (message, message.getAllrecipients ()); trans.close (); }}Images + pièces jointes
/ ** * 3. Email avec des ressources d'image et des pièces jointes * @author jie.yuan * * / classe publique app_3imgandatta {// Paramètres d'initialisation Propriétés statiques privées; // Sender Private Static InternetAddress Sendman = NULL; statique {prop = new Properties (); Prop.put ("mail.transport.protocol", "smtp"); // Spécifiez le protocole Prop.put ("Mail.smtp.host", "localhost"); // hôte stmp.qq.com Prop.put ("mail.smtp.port", 25); // port prop.put ("mail.smtp.auth", "true"); // User Motway Authentication Prop.put ("mail.debug", "true"); // mode de débogage essayez {sendman = new InternetAddress ("[email protected]"); } catch (AddressException e) {lancer une nouvelle RuntimeException (e); }} @Test public void testSend () lève une exception {// 1. Créer une session de session de messagerie Session = session.getDefaultInstance (PROP); // 2. Créer un message d'objet MAIN MIMEMESSAGE = new MimeMessage (session); // 3. Définir les paramètres: titre, expéditeur, destinataire, temps d'envoi, contenu message.SetSubject ("mail avec image"); Message.SetSender (Sendman); Message.SetReccipient (destinataireType.to, nouveau InternetAddress ("[email protected]")); message.sesentDate (new Date ()); / * * Development de courrier avec pièce jointe (image) * / // construire un bloc de courrier total mimemultuparting mixte = new mimemMultupart ("mixte"); // -> Le courrier total est rapide, défini sur Message.SetContent (mixte); // Left: (Text + Ressource d'image) MIMEBODYPART Left = new MIMEBODYPART (); // à droite: pièce jointe mimeBodyPart droit = new MIMEBodyPart (); // réglé sur Total Mail Block Mixed.AddBodyPart (à gauche); mixte.AddbodyPart (à droite); / ***. DataSource att_ds = new FileDataSource (nouveau fichier (att_path)); Datahandler att_handler = new Datahandler (att_ds); right.setDatahandler (att_handler); droite.setFileName ("a.docx"); / *******************. // ---> réglé sur le gauche.setContent (lié); // 4.2 Créez le contenu du bloc de messagerie multifonctionnel = Texte sur la ressource d'image gauche + sur le contenu MIMEBODYPART droit = new MIMEBODYPART (); MIMEBODYPART RESSOURCE = new MIMEBODYPART (); // Définir le contenu spécifique: a. Ressource (image) chaîne filepath = app_3imgandatta.class.getResource ("8.jpg"). GetPath (); DataSource ds = new FiledAdAtaSource (nouveau fichier (filepath)); DATAHANDLER Handler = nouveau Datahandler (DS); Resource.setDatahandler (gestionnaire); ressource.setContentid ("8.jpg"); // Définissez le nom de la ressource et référence à la touche étrangère // Définissez le contenu spécifique: b. Text contenu.setContent ("<img src = 'cid: 8.jpg' /> ok!", "Text / html; charset = utf-8"); liéd.addbodyPart (contenu); liéd.addbodyPart (ressource); // 5. SendTransport trans = session.getTransport (); trans.connect ("zhangsan", "888"); Trans.SendMessage (message, message.getAllrecipients ()); trans.close (); }}Ce qui précède concerne cet article, j'espère qu'il sera utile pour tout le monde d'apprendre la programmation Java.