Sendages multiples et vérification des utilisateurs
Les éléments suivants présenteront d'abord comment envoyer des e-mails à plusieurs destinataires et comment utiliser l'objet Authenticators pour réaliser l'authentification des utilisateurs.
Lorsque vous spécifiez un destinataire, nous pouvons avoir deux façons de le spécifier. Le blog précédent a temporairement spécifié le destinataire lors de l'envoi d'un e-mail, et il peut en fait être spécifié dans l'objet Message.
Message.Addrecicipient (message.recipentType.to, new InternetAddress ("[email protected]")); C'est juste pour l'envoyer à un destinataire, mais comment y faire face avec plusieurs destinataires? Il existe également deux façons de le faire face.
1. Lors de l'envoi de courriels, la méthode de transport SendMessage () utilise un tableau pour spécifier le destinataire. Pour le moment, nous n'avons qu'à ajouter plus d'adresses de destinataire pour le compléter.
2. Lorsque vous utilisez l'objet Message pour ajouter des destinataires, nous pouvons utiliser la méthode Parse (String String) de l'objet InternetAddress. Cette méthode renvoie un tableau InternetAddress, qui peut également être envoyé à plusieurs destinataires.
Nous savons que lors du développement de Javamail, nous devons effectuer une vérification d'autorisation. Le but de la vérification de l'autorisation est d'empêcher les autres d'envoyer des e-mails arbitrairement et de réduire la génération de spam.
Nous pouvons vérifier lors de l'obtention de l'objet de session. Il existe deux méthodes dans l'objet de session:
Les deux méthodes ont un authentificateur de paramètre commun, qui est un objet d'authentificateur. L'objet Authenticator aide les utilisateurs à vérifier les informations et à terminer la vérification de l'autorisation. Il existe une méthode getPasswordAuthentication () dans l'objet Authenticator. Cette méthode renvoie un objet PasswordAuthentication. Il existe deux méthodes dans l'objet PasswordAuthentication: getPassword () et getUserName () qui signifie que nous encapsulons le mot de passe et le nom d'utilisateur dans l'objet PasswordAuthentication. Grâce à ces deux méthodes, nous pouvons obtenir le nom d'utilisateur et le mot de passe. La vérification des informations de l'utilisateur peut être terminée.
Les exemples sont les suivants:
classe publique javamail_02 {public static void main (String [] args) lève l'exception {Properties props = new Properties (); props.setProperty ("mail.smtp.auth", "true"); props.setProperty ("mail.transport.protocol", "smtp"); props.setproperty ("mail.host", "smtp.163.com"); Session session = session.getInstance (accessoires, new Authenticator () {Protected PasswordAuthentication GetPasswordAuthentication () {return new PasswordAuthentication ("******", "*********");}}); session.setDebug (true); Message msg = new mimeMessage (session); msg.setFrom (nouveau InternetAddress ("[email protected]")); MSG.SETSUSBject ("Javamail Test Program ..."); msg.setContent ("<span style = 'Color: Red'> Ceci est mon deuxième programme de test Javamail .... </span>", "text / html; charset = gbk"); //msg.setRecicipients(SrecipentType.to, nouvelle adresse [] {new InternetAddress ("1111 @@ qq.com"), nouveau InternetAddress ("[email protected]")}); msg.setReccipients (destinataireType.to, InternetAddress.Parse ("995812509 @ qq.com, 1247723213 @ qq.com")); Transport.send (msg); }} Email avec des photos et des pièces jointes
Dans les e-mails réels, nous impliquons généralement des structures de messagerie plus complexes, telles que les pièces jointes, les images, les chansons, etc. Pour le moment, nous devons avoir une compréhension claire de la structure de l'e-mail. Avant de développer un e-mail composite, vous devez avoir une certaine compréhension de la structure des e-mails composites.
L'image ci-dessus montre la structure globale d'un e-mail composite, et nous pouvons voir qu'un e-mail complexe se compose de plusieurs parties. Il a un en-tête et un corps, mais le corps n'est pas aussi simple qu'auparavant, mais se compose de plusieurs parties. La tête doit servir d'indication, qui doit expliquer quel type de séparateur utiliser pour séparer le texte et quelles relations combinées sont utilisées entre les parties du texte. Pour l'e-mail ci-dessus, il se compose de trois parties, chacune avec sa propre tête et son corps, et la première partie est également composée de deux parties.
Relation combinée de l'e-mail composite:
Il existe de nombreuses combinaisons entre les principales pièces de texte. La relation combinée est la suivante:
Alternative: sélectionnez la relation. Le texte brut et l'hypertexte ci-dessus sont une relation de choix.
Connexes: relation affiliée. Si le texte hypertexte ci-dessus affiche une image, lorsque nous envoyons un e-mail, nous devons inclure l'image dans l'e-mail, qui est la soi-disant ressource embarquée, qui est pour Hypertext. Il y a donc une relation entre les deux.
Mélangeur: relation mixte. Le texte brut, l'hypertexte et les ressources intégrés forment un tout et sont juxtaposés à des attachements, et il existe une relation mitigée entre les deux.
API pour la structure de l'organisation du courrier composite:
La classe MimeMessage représente l'intégralité de l'e-mail.
La classe MIMEBODYPART représente un message MIME de l'e-mail.
La classe MIMEMULPART représente un message mime combiné composé de plusieurs messages mime.
L'exemple suivant: l'e-mail contient deux pièces jointes, la partie principale comprend du texte brut et de l'hypertexte, et l'hypertexte signifie afficher une image. Le code source est le suivant:
classe publique Javamail_03 {public static void main (String [] args) lève l'exception {Properties props = new Properties (); props.setProperty ("mail.smtp.auth", "true"); props.setProperty ("mail.transport.protocol", "smtp"); props.setproperty ("mail.host", "smtp.163.com"); Session session = session.getInstance (accessoires, new Authenticator () {mot de passe protégé GetPasswordAuthentication () {return new PasswordAuthentication ("***", "******");}}); Message Message = new MimeMessage (session); Message.SetSubject ("Troisième programme de test Javamail"); Message.setFrom (nouveau InternetAddress ("/" "+ mimeutility.encodetext (" Chen Ming ") +" / "<[email protected]>")); message.setRecipients (destinataireType.to, nouvelle adresse [] {new InternetAddress ("[email protected]")}); // Texte de courrier MIMEMULPART Multipart = new MIMEMULPART ("mixte"); Message.SetContent (multipart); / * * Le contenu du message * comprend un corps de messagerie et deux pièces jointes * / MIMEBodyPart Content = new MIMEBODYPART (); // MAIL CONTENU MIMEBODYPART PIOL1 = NOUVEAU MIMEBODYPART (); // pièce jointe 1 mimeBodyPart attach2 = new MimeBodyPart (); // pièce jointe 2 // ajouter le contenu de l'e-mail à multipart multipart.addbodyPart (contenu); multipart.addbodyPart (ATTCH1); multipart.addbodyPart (ATTCH2); // Définir la pièce jointe 1 DataSource DS1 = new FileDataSource ("g: // eBook // Oracle Password.txt"); Datahandler DH1 = nouveau Datahandler (DS1); attach1.setDatahandler (dh1); attach1.setFileName ("oracle.txt"); // SET Pièces jointes 2 DataSource DS2 = new FileDataSource ("g: //ebook//account.txt"); Datahandler dh2 = new Datahandler (ds2); attach2.setDatahandler (dh2); attach2.setFileName (mimeutility.encodeText ("account.txt")); / * * SET Content (texte) ---- est un corps complexe * y compris le texte HTML et l'affichage d'une image * / MIMEMULPART BodyMultipartipt = new MIMEMULTIPART ("LELED"); Content.setContent (BodyMultiPart); // Construisez le texte mimeBodyPart htmlbody = new MIMEBODYPART (); MIMEBODYPART GIFBODY = new MIMEBODYPART (); bodyMultipart.addbodyPart (htmlbody); bodyMultipartit.addbodyPart (gifbody); // Définissez l'image DataSource Gifts = new FileDataSource ("f: //picture//picture//4.jpg"); Datahandler gifdh = new Datahandler (gifds); gifbody.setDatahandler (gifdh); gifbody.sethEader ("content-id", "<" + gifds.getName () + ">"); //gifbody.sethader("content-location "," http://www.itcast.cn/logo.gif "); // Définir le corps html htmlbody.setContent ("<span style = 'Color: Red; font-size: 16px'> Ceci est mon troisième test Javamail! Il comprend des pièces jointes et des images, qui est un peu compliquée ... </span> <br>" + "L'image affichée <img src = 'cid: 4.jpg' />", "text / html; charset = utf: 4.jpg '/>", " message.SaveChanges (); // générer des e-mails transport.send (message); }}