Préface
Veuillez noter: L'adresse e-mail de test utilisée par le code suivant est la boîte aux lettres 126, qui est disponible dans les tests réels. Notez que lors des tests personnels, faites attention au contenu e-mail envoyé. Le serveur de messagerie passe en revue le contenu des e-mails et le serveur de messagerie est relativement strict. Si vous ne faites pas attention, vous serez jugé comme spam, puis vous serez retourné avec un code d'erreur:
Exemple de code
Importer java.util.date; import java.util.properties; import javax.mail.authenticator; import javax.mail.message; import javax.mail.passwordauthentication; import javax.mail.ession; javax.mail.internet.mimeBodyPart; import javax.mail.internet.mimeMessage; import javax.mail.internet.mimemultupar; import javax.mail.internt.mimeutility; public class sendMailUtil {private static final string username = "user name";; // Nom d'utilisateur de l'expéditeur Private Static Final String Password = "Mot de passe"; // mot de passe de l'expéditeur privé statique final string hostname = "smtp.126.com"; // Adresse du serveur SMTP STATIQUE PRIVATE STATIQUE FINAL FROMADRESS = Nom d'utilisateur + "@ 126.com"; // Email de Sender STATIC FINAL STRATION FINAL FROMUSERNAME = "CNCD-CODE CHINISAN BLOG"; // Le nom de l'expéditeur peut être écrit en tant que chaîne finale statique privée EmailTitle = "Blog chinois CNCD-Code"; // Titre par e-mail privé Static final String EmailContent = "Bienvenue pour utiliser le blog chinois CNCD-CODE pour activer le courrier électronique, veuillez cliquer sur le lien à droite pour terminer l'activation du compte: / n"; // contenu e-mail public static void main (String [] args) {try {Sendemail ("[email protected]", "nom de l'utilisateur: guopengfei, mot de passe: GuoPegFei"); } catch (exception e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); }} / ** * Envoyer un e-mail * @param SendAddress l'adresse e-mail à envoyer * @param Contenu Le contenu envoyé * @throws exception * / public static void SenDemail (String SendAddress, String Content) lève une exception {// Créer une propriété de connexion. Properties props = news properties (); // props.put ("mail.smtp.host", nom hôte); // Définir l'adresse du serveur de SMTP est smtp.126.com props.put ("mail.smtp.auth", "true"); // Définissez l'authentification du serveur SMTP. props.put ("mail.transport.protocol", "STMP"); Session session = session.getInstance (accessoires, new Authenticator () {mot de passe-Authentication protégé getPasswordAuthentication () {return new PasswordAuthentication (username, mot de passe);}}); Message Message = new MimeMessage (session); InternetAddress de = new InternetAddress (FromAddress); // Adresse de l'expéditeur de.SetPersonal (mimeUtility.EncodeText (FromUserName)); // Nom de l'expéditeur Message.SetFrom (From); // InternetAddress vers = new InternetAddress ("[email protected]"); // // Adresse du destinataire // Créer un e-mail: message.SetRcipients (message.recicipentType.to, InternetAddress.Parse (SendAddress)); // CC à l'adresse e-mail de plusieurs personnes // message.SetRcipient (message.recipentType.to, vers); // uniquement CC à votre e-mail.SetSubject (mimeutility.encodeText (emailTitle)); // Email Title Message.SeSentDate (new Date ()); Mimemultupart msgMultupart = new mimeMultupart ("mixte"); // Spécifiez comme un message de relation mixte. // contenu e-mail mimeBodyPart htmlPart = new MimeBodyPart (); htmlPart.setContent ("<body> <div style = 'width: 1000px; hauteur: 300px; marge: 0px auto; margin-boot: 20px; bordure: 1px solide # 92b0dd; background-color: #ffffff;'> <h3> C'est un e-mail envoyé automatiquement par le système, s'il vous plaît ne répondez pas! </ h3> Contenu + "</div> </ body>", "text / html; charset = utf-8"); // TODO, l'ordre d'assemblage est très important. Vous devez d'abord assembler le champ de texte, puis assembler le fichier msgMultupar.AddbodyPart (htmlPart); // assemblez la pièce jointe // MIMEBODYPART FILE = new MIMEBodyPart (); // filedataSource file_datasource = new FileDataSource (// "d: //report_data2.txt"); // datahandler dh = new Datahandler (file_datasource); // file.setDatahandler (dh); // // Une fonctionnalité des pièces jointes qui distingue le contenu intégré est qu'il a des noms de fichiers, qui doivent être codés pour empêcher le code brouillé chinois // file.setFileName (mimeutility.encodetext (dh.getName ())); // msgMultupartipl.AddBodyPart (fichier); message.SaveChanges (); // Le processus d'envoi des e-mails: 95188 Transport Transport = Session.getTransport ("SMTP"); // Créer une connexion Transport.Connect (nom d'hôte, 25, nom d'utilisateur, mot de passe); // Connectez-vous au serveur // Nom du service, port, envoyez le nom d'utilisateur du courrier // (Don't @ Back), Motword Transport.SendMessage (message, message.getAllrecicipients ()); // Envoyer un message transport.close (); // close System.out.println ("Envoyer terminé"); }}Notez que pour les amis qui utilisent ce code pour la première fois, il est recommandé de ne pas modifier le reste, à l'exception du nom d'utilisateur et du mot de passe, sinon il est facile d'être jugé comme spam par e-mail NetEase et non envoyé. Généralement, lorsqu'il est jugé comme spam, le code d'erreur renvoyé par netEase est le suivant:
com.sun.mail.smtp.smtpsendFailedException: 554 dt: spm 126 smtp2, dmmowacxotzmk8vxvdknea -. 1778S2 1472566222, veuillez consulter http://mail.163.com/help/help_spam_16.htm?ip=117.114.147.13&hostid=smtp2&time=1472566222 à com.sun.mail.smtp.smtpransport.issuendCommand (smtptransport.java:1829) ATSUSEDCOMMAND (SMTPTRANSPORT.JAVA: com.sun.mail.smtp.smtptransport.finishdata (smtptransport.java:1634) sur com.sun.mail.smtp.smtptransport.sendMessage (smtptransport.java:889) à SendMailutil.sendEmail (sendmailit.java:88) attmailutil.sendEmail (sendmailit.java:88) attmailutil.sendEmail (sendmailulil.java:88) ATMAILUTIL.SENDEMAIN (sendmailit. Sendmailutil.main (sendmailutil.java:29)
Cela signifie que vous pouvez accéder au lien dans le code de retour d'erreur pour afficher les informations d'aide. Vous pouvez saisir le lien et constater que le code d'erreur 554 ci-dessus représente le sens. Cette situation est généralement jugée comme spam.
Deuxièmement, n'exécutez pas (envoyer) les e-mails dans le code ci-dessus fréquemment lors des tests. S'ils sont trop fréquents, ils seront facilement jugés en spam. OK, ce qui précède est le contenu complet de cet article. J'espère que cela sera utile à l'étude et au travail de chacun.