Herunterladen und Hochladen von Anhängen, Senden von Textnachrichten und Senden von E -Mails werden im Programm sehr häufig verwendete Funktionen. Ich habe das Upload und Download von Dateien und Senden von Textnachrichten aufgezeichnet. Da ich vor kurzem beschäftigt war, hatte ich keine Zeit, die E -Mail -Sendungsfunktion zu erfüllen. Jetzt habe ich endlich erfolgreich E -Mails an die QQ -E -Mail mit 163 Mailbox gesendet. Das Folgende sind die relevanten Codes. Weitere Informationen finden Sie in den Kommentaren im Code:
Pakettest; Import Java.util.ArrayList; import Java.util.date; importieren java.util.list; Import Java.util.Properties; Import Java.util.Regx.Matcher; Import Java.util.Regex.Pattern; import Javax.mail.address; import Javax.mail.Authenticator; Javax.mail.bodypart importieren; Javax.Mail.Message importieren; Javax.Mail.PasswordAuthentication importieren; Javax.Mail.Session importieren; importieren javax.mail.transport; import javax.mail.internet.interneTadDress; import javax.mail.internet.mimebodypart; importieren javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; import com.sun.mail.util.mailsslsocketfactory; /// */ * // * @Author TuzongXun123 // * @Description Mail Senden Sie Testklasse // */public class sendmailtest {public static void main (String [] args) löst die Ausnahme aus {// Konfigurationsinformationen pro = neue Eigenschaften (); pro.put ("mail.smtp.host", "SMTP.163.com"); pro.put ("mail.smtp.auth", "true"); // SSL -Verschlüsselung mailsSlsocketFactory sf = null; sf = new MailsSlsocketFactory (); // Vertrauen Sie auf alle Hosts sf.settrustallhosts (true); pro.put ("mail.smtp.ssl.enable", "true"); pro.put ("mail.smtp.ssl.socketfactory", sf); // Erstellen Sie eine Sitzung zum Senden von E -Mails basierend auf den Sitzungseigenschaften der E -Mail. Es ist hier zu beachten, dass der Benutzername nicht satt gemischt werden kann, andernfalls ist er nicht der Benutzername. // Es sollte auch beachtet werden, dass das Passwort hier nicht das Anmeldekennwort des Mailbox normalerweise ist, sondern ein weiterer spezieller Autorisierungscode, der vom Client MailAuthenticator Authorizer = new MailAuthenticator ("tuzongxun123", "Client -Autorisierungscode") generiert wird. Session Session = Session.getInstance (Pro, Autorizer); // E -Mail -Informationen basierend auf Sitzungsnachricht konstruieren = new mimemessage (Sitzung); // E -Mail -Absenderadresse von = New InternetAddress ("[email protected]") erstellen; // Setzen Sie den Absender der E -Mail -Nachricht.setfrom (von); // Überprüfen Sie die E -Mail -Adressliste des Empfängers <string> toaddresslist = new ArrayList <> (); toaddressList.add ("[email protected]"); StringBuffer Buffer = new StringBuffer (); if (! toaddresslist.isempy ()) {String regex = "^([a-z0-9a-z]+[-| //.]?)+[a-z0-9a-z]@([a-z0-9a-z]+(-[a-z0-9a-z]+)? //.) Muster p = muster.comPile (regex); für (int i = 0; i <toaddresslist.size (); i ++) {Match match = p.matcher (Toaddristlist.get (i)); if (match.matches ()) {buffer.Append (Toaddrist.get (i)); if (i <toaddressList.size () - 1) {buffer.Append (","); }}}}} String toaddress = buffer.toString (); if (! toaddress.isempty ()) {// Erstellen Sie die Empfängeradresse der Nachrichtenadresse [] to = InternetAddress.Parse (Toaddress); // Setzen Sie die E -Mail -Empfänger -Adressnachricht. // E -Mail -Betreff // message.setsubject ("Java -Mail -Test"); Message.Setsubject ("Warum ist falsch"); // E -Mail -Container mimemultipart mimemultipart = new mimemultipart (); // html bodypart bodypart = new mimebodypart (); // mailinhalte // String htmlText = "Java -E -Mail -Test 111"; String htmlText = "Warum ist es falsch?" bodypart.setContent (htmlText, "text/html; charSet = utf-8"); mimemultipart.addbodypart (bodypart); // Anhangsliste <string> fileaddresslist = new ArrayList <string> () hinzufügen; fileaddressList .Add ("c: // user // tuzongxun123 // Desktop // Neues Microsoft Office Word -Dokument.docx"); if (fileadDressList! für (int i = 0; i <fileaddresslist.size (); i ++) {if (! fileaddresslist.get (i) .ISEMPTY ()) {cattledPart = new mimebodypart (); // Anhang Data Source DataSource Source = new fileDataSource (fileaddrist.get (i)); // Fügen Sie die Anhangsdatenquelle zum Mail Body AttachPart.SetDatahandler (New Datahandler (Quelle)) hinzu; // Setzen Sie den Anhangsnamen auf den Original -Dateinamen bei AttachPart.setFileName (mimeutility.encodetext (Quelle .getName ())); mimemultipart.addbodypart (AttchPart); }}} message.setContent (mimemultipart); Message.SetSentDate (neues Datum ()); // E -Mail -Nachricht speichern. // E -Mail -Transport.Send (Nachricht) senden; }}} class mailAuthenticator erweitert den Authenticator { / *** Benutzername* / private String -Benutzername; / *** Passwort*/ privates Zeichenfolge Passwort; /*** Erstellen Sie einen neuen Instanz Mailauthenticator. * * @param userername * @param password */ public MailAuthenticator (String -Benutzername, String -Passwort) {this.username = userername; this.Password = Passwort; } public String getPassword () {Kennwort zurückgeben; } @Override Protected PasswordAuthentication getPasswordAuthentication () {Neue PasswordAuthentication (Benutzername, Passwort); } public String getUnername () {return userername; } public void setPassword (String -Passwort) {this.password = password; } public void setUnername (String -Benutzername) {this.username = userername; }}Hinweis: Ein Kollege von mir benutzte meinen Code, um ihn durch seinen Konto- und Kundenautorisierungscode zu ersetzen. Er meldete einen Fehler, sobald er ihn leitete. Dann setzte er den Client -Autorisierungscode der E -Mail -Adresse zurück und der Fehler verschwand.
Das obige dreht sich alles um diesen Artikel. Ich hoffe, dass es für alle hilfreich sein wird, Java -Programme zu lernen.