Vorwort
Bitte beachten Sie: Die vom folgende Code verwendete Test -E -Mail -Adresse ist 126 Mailbox, die in den tatsächlichen Tests verfügbar ist. Beachten Sie, dass bei persönlichen Tests die gesendeten E -Mail -Inhalte achten. Der E -Mail -Server überprüft den E -Mail -Inhalt und der E -Mail -Server ist relativ streng. Wenn Sie nicht vorsichtig sind, werden Sie als Spam beurteilt, und dann werden Sie mit einem Fehlercode zurückgegeben:
Beispielcode
Import Java.util.date; Import Java.util.Properties; import Javax.mail javax.mail.internet.mimebodypart; import javax.mail.internet.mimemessage; import javax.mail.internet.mimemultiPart; Javax.mail.internet.Mimeutility; öffentliche Klasse Sendmailutil {private statische Endstation username = "Benutzername"; // Sender Benutzername private statische endgültige Zeichenfolge Password = "Passwort"; // Senders Passwort private statische endgültige String -Hostname = "SMTP.126.com"; // SMTP Server -Adresse private statische endgültige Zeichenfolge vonaddress = userername + "@126.com"; // Absender E-Mail private statische endgültige Zeichenfolge von susername = "CNCD-Code Chinese Blog"; // Der Name des Absenders kann als private statische endgültige Zeichenfolge E-Mail-Title = "CNCD-Code Chinese Blog" geschrieben werden. // E-Mail-Title Private Static Final String E-Mail-content = "Willkommen, um CNCD-Code Chinese-Blog zu verwenden, um E-Mails zu aktivieren, bitte klicken Sie auf das Recht auf rechts, um die Kontoaktivierung zu vervollständigen:/n"; // E-Mail Inhalt public static void main (String [] args) {try {sendemail ("[email protected]". } catch (Ausnahme e) {// Todo automatisch generierter Block E. printstacktrace (); }} / *** E -Mail senden* @param sendAddress Die zugesandte E -Mail -Adresse* @param Inhalt Der Inhalt gesendet* @throws Exception* / public static void sendemail (String sendAddress, String -Inhalt) löst Ausnahme aus {// Erstellen einer Verbindungseigenschaft. Eigenschaften props = neue Eigenschaften (); // props.put ("mail.smtp.host", hostname); // Legen Sie die Serveradresse von SMTP fest. // Legen Sie den SMTP -Server so ein, dass sie authentifiziert werden. props.put ("mail.transport.protocol", "stmp"); Session Session = Session.getInstance (Props, New Authenticator () {Protected PasswordAuthentication getPasswordAuthentication () {Neue PasswordAuthentication (Benutzername, Passwort);}}); Message Message = New Mimemessage (Sitzung); InternetAddress von = new InternetAddress (FromAddress); // Absenderadresse von // Absendername Message.setfrom (von); // InternetAddress to = New InternetAddress ("[email protected]"); // // Empfängeradresse // E -Mail erstellen: message.setRecipients (Message.RecipientType.to, InternetAddress.Parse (sendAddress)); // CC an mehrere Personen -E -Mail -Adresse // message.setRecipient (message.recipientType.to, to); // Nur CC zu Ihrer E -Mail -Nachricht.Setsubject (mimeutility.EndETEXT (E -MailTitle)); // E -Mail -Titel meldung.setSentDate (neues Datum ()); Mimemultipart msgmultipart = new Mimemultipart ("gemischt"); // als gemischte Beziehungsnachricht angeben. // E -Mail -Inhalte mimebodypart htmlPart = new Mimebodypart (); htmlPart.SetContent ("<body> <div style = 'width: 1000px; Höhe: 300px; Rand: 0px Auto; Inhalt+"</div> </body>", "text/html; charset = utf-8"); // TODO Die Reihenfolge der Montage ist sehr wichtig. Sie müssen zuerst das Textfeld zusammenstellen und dann die Datei msgmultipart.addbodypart (htmlPart) zusammenstellen. // montieren Sie den Anhang // mimebodypart file = new mimebodypart (); // fieledataSource File_dataSource = new fileDataSource (// "d: //report_data2.txt"); // datahandler dh = new Datahandler (Datei_DataSource); // file.setDatahandler (DH); // // Eine Funktion der Anhänge, die eingebettete Inhalte unterscheiden, besteht darin, dass sie Dateinamen enthält, die codiert werden müssen, um den chinesischen verstümmelten Code zu verhindern // Datei.setFileName (mimeutility.encodetext (dh.getName ()); // msgmultipart.addbodypart (Datei); Message.Savechanges (); // Der Prozess des Sendens von E -Mails: 95188 Transport transport = session.getTransport ("SMTP"); // Erstellen Sie einen Verbindungstransport.Connect (Hostname, 25, Benutzername, Passwort); // eine Verbindung zum Server herstellen // Dienstname, Port, Mail -Benutzername senden // (nicht @ zurück), Passwort transport.sendMessage (message, message.getallrecipients ()); // message transport senden.close (); // schließen system.out.println ("abgeschlossen"); }}Beachten Sie, dass für Freunde, die diesen Code zum ersten Mal verwenden, empfohlen wird, den Rest nur für den Benutzernamen und das Passwort zu ändern. Andernfalls ist es einfach, per E -Mail von Netase als Spam beurteilt und nicht gesendet zu werden. Wenn es als Spam beurteilt wird, lautet der von NetEase zurückgegebene Fehlercode wie folgt:
com.sun.mail.smtp.smtppsendfailedException: 554 DT: SPM 126 SMTP2, DMMOWACXOTZMK8VXVDKNEA-1778S2 147256222, Weitere Informationen http://mail.163.com/help/help_spam_16.htm?ip=117.114.147.13&hostid=smtp2&time=1472566222 at com.sun.smtp.smtptransport.ISSUSSUSESUSSUSEDCOMAND) com.sun.mail.smtp.smtptransport.finishdata ( Sendmailutil.main (sendmailutil.java:29)
Dies bedeutet, dass Sie zum Link im Fehlerrückgabecode gehen können, um die Hilfeinformationen anzuzeigen. Sie können den Link eingeben und feststellen, dass der obige 554 -Fehlercode die Bedeutung darstellt. Diese Situation wird normalerweise als Spam beurteilt.
Zweitens führen Sie die E -Mails im obigen Code während des Tests nicht häufig aus (senden Sie sie nicht. Wenn sie zu häufig sind, werden sie leicht als Spam beurteilt. OK, das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Studium und die Arbeit aller hilfreich sein.