Mehrere Sendungen und Benutzerüberprüfung
Im Folgenden wird zunächst vorgestellt, wie Sie E -Mails an mehrere Empfänger senden und das Objekt des Authentikatoren verwenden, um die Benutzerauthentifizierung zu erreichen.
Bei der Angabe eines Empfängers können wir zwei Möglichkeiten haben, ihn anzugeben. Der vorherige Blog gab den Empfänger beim Senden einer E -Mail vorübergehend an und kann tatsächlich im Nachrichtenobjekt angegeben werden.
Message.AdDrecipient (Message.RecipientType.to, New InternetAddress ("[email protected]")); Dies dient nur zum Senden an einen Empfänger, aber wie kann man mit mehreren Empfängern damit umgehen? Es gibt auch zwei Möglichkeiten, damit umzugehen.
1. Beim Senden von E -Mails verwendet die Transportmethode sendMessage () ein Array, um den Empfänger anzugeben. Zu diesem Zeitpunkt müssen wir nur weitere Empfängeradressen hinzufügen, um sie zu vervollständigen.
2. Bei Verwendung des Nachrichtenobjekts zum Hinzufügen von Empfängern können wir die Parse -String -Methode (String) des InternetAddress -Objekts verwenden. Diese Methode gibt ein InternetAtaddress -Array zurück, das auch an mehrere Empfänger gesendet werden kann.
Wir wissen, dass wir bei der Entwicklung von Javamail die Autorisierungsüberprüfung durchführen müssen. Der Zweck der Autorisierungsüberprüfung besteht darin, zu verhindern, dass andere E -Mails willkürlich senden und die Erzeugung von Spam verringern.
Wir können überprüfen, wenn wir das Sitzungsobjekt erhalten. Das Sitzungsobjekt enthält zwei Methoden:
Beide Methoden haben einen gemeinsamen Parameterauthentikator, bei dem es sich um ein Authentikatorobjekt handelt. Das Authenticator -Objekt hilft Benutzern, Informationen zu überprüfen und die Verifizierung der Autorisierung zu vervollständigen. Es gibt eine GetPasswordAuthentication () -Methode im Authenticator -Objekt. Diese Methode gibt ein PasswortAuthentication -Objekt zurück. Das Objekt der PasswordAuthentication enthält zwei Methoden: GetPassword () und getUnername (), dh, wir haben das Passwort und den Benutzernamen im Objekt PasswortAuthentication zusammengefasst. Mit diesen beiden Methoden können wir den Benutzernamen und das Kennwort erhalten. Die Überprüfung der Benutzerinformationen kann abgeschlossen werden.
Beispiele sind wie folgt:
public class javamail_02 {public static void main (String [] args) löst Ausnahme aus {Properties props = neue Eigenschaften (); props.setProperty ("mail.smtp.auth", "true"); props.setProperty ("mail.transport.protocol", "SMTP"); props.setProperty ("mail.host", "SMTP.163.com"); Session Session = session.getInstance (Props, New Authenticator () {Protected PasswordAuthentication getPasswordAuthentication () {Neue PasswordAuthentication zurückgeben ("******", "*********");}}); Session.setDebug (true); Nachricht msg = new Mimemessage (Sitzung); msg.setfrom (neue InternetAddress ("[email protected]"); msg.setsubject ("Javamail -Testprogramm ..."); msg.setContent ("<span style = 'color: rot'> Dies ist mein zweites Javamail -Testprogramm .... </span>", "text/html; charset = gbk"); //msg.setRecipient(RecipientType.to, neue Adresse [] {New InternetAddress ("1111 @@ qq.com"), New InternetAddress ("[email protected]")}); msg.setRecipients (recicentType.to, InternetAddress.Parse ("[email protected], [email protected]")); Transport.Send (MSG); }} E -Mail mit Bildern und Anhängen
In tatsächlichen E -Mails beinhalten wir im Allgemeinen komplexere E -Mail -Strukturen wie Anhänge, Bilder, Lieder usw. Zu diesem Zeitpunkt müssen wir die Struktur der E -Mail eindeutig eindeutig verstehen. Bevor Sie zusammengesetzte E -Mails entwickeln, müssen Sie die Struktur von zusammengesetzten E -Mails ein gewisses Verständnis haben.
Das obige Bild zeigt die Gesamtstruktur einer zusammengesetzten E -Mail und wir können sehen, dass eine komplexe E -Mail aus mehreren Teilen besteht. Es hat einen Kopfball und Körper, aber der Körper ist nicht so einfach wie zuvor, sondern besteht aus mehreren Teilen. Der Kopf muss als Hinweis dienen, die erklären muss, welche Art von Separator der Text trennen soll und welche Kombinationsbeziehungen zwischen den Teilen des Textes verwendet werden. Für die obige E -Mail besteht es aus drei Teilen mit jeweils eigenem Kopf und Körper, und der erste Teil besteht auch aus zwei Teilen.
Kombinationsbeziehung der zusammengesetzten E -Mail:
Es gibt viele Kombinationen zwischen den Haupttextteilen. Die Kombinationsbeziehung lautet wie folgt:
Alternative: Wählen Sie die Beziehung aus. Der obige einfache Text und Hypertext ist eine Auswahlbeziehung.
Verwandte: verbundene Beziehung. Wenn im obigen Hypertext-Text ein Bild angezeigt wird, müssen wir beim Senden einer E-Mail das Bild in die E-Mail aufnehmen, die die sogenannte eingebettete Ressource ist, die für Hypertext gilt. Es gibt also eine Beziehung zwischen den beiden.
gemischte: gemischte Beziehung. Einfacher Text, Hypertext und eingebettete Ressourcen bilden ein Ganzes, und sie werden mit Anhängen gegenübergestellt, und es besteht eine gemischte Beziehung zwischen den beiden.
API für zusammengesetzte Mail -Organisationsstruktur:
Die Mimemessage -Klasse repräsentiert die gesamte E -Mail.
Die Mimebodypart -Klasse repräsentiert eine MIME -Nachricht der E -Mail.
Die Mimemultipart -Klasse stellt eine kombinierte MIME -Nachricht dar, die aus mehreren MIME -Nachrichten besteht.
Das folgende Beispiel: Die E -Mail enthält zwei Anhänge, der Hauptteil enthält Klartext und Hypertext, und der Hypertext bedeutet, ein Bild anzuzeigen. Der Quellcode lautet wie folgt:
public class javaMail_03 {public static void main (String [] args) löst Ausnahme aus {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 (Props, New Authenticator () {Protected PasswordAuthentication getPasswordAuthentication () {Neue PasswordAuthentication zurückgeben ("***", "******");}}); Message Message = New Mimemessage (Sitzung); Message.Setsubject ("Dritter Javamail -Testprogramm"); Message.SetFrom (neue InternetAddress ("/" "+mimeutility.EndeText (" Chen Ming ")+"/"<[email protected]>")); message.setRecipients (recicentType.to, neue Adresse [] {new InternetAtaddress ("[email protected]")}); // Mail -Text mimemultipart multipart = new mimemultiPart ("gemischt"); Message.SetContent (Multipart); /** Der Inhalt der Nachricht* enthält einen E -Mail -Körper und zwei Anhänge*/ mimebodypart content = new mimebodypart (); // mail content miMebodypart contat1 = new Mimebodypart (); // Anhang 1 Mimebodypart Attach2 = neuer Mimebodypart (); // Anhang 2 // den E -Mail -Inhalt hinzufügen, um Multipart.addbodyPart (Inhalt) zu multiPart -multiPart.addbodypart hinzuzufügen. Multipart.Addbodypart (Attch1); Multipart.Addbodypart (Attch2); // Anhang 1 DataSource festlegen ds1 = new farrEedataSource ("g: // eBook // Oracle password.txt"); Datahandler dh1 = neuer datahandler (ds1); Attach1.SetDatahandler (DH1); contat1.setFileName ("Oracle.txt"); // Anhang 2 DataSource festlegen ds2 = new fileDataSource ("g: //ebook//account.txt"); Datahandler dh2 = neuer datahandler (ds2); Attach2.SetDatahandler (DH2); contATE2.setFileName (mimeutility.encodetext ("account.txt")); /** Inhalt (Text) einstellen ---- ist ein komplexer Körper* einschließlich HTML-Text und Anzeige eines Bildes*/ Mimemultipart BodyMultiPart = new mimemultipart ("verwandt"); Content.SetContent (BodyMultipart); // Konstruieren Sie den Text mimebodypart htmlbody = new Mimebodypart (); Mimebodypart gifbody = new Mimebodypart (); BodyMultipart.Addbodypart (htmlbody); bodyMultipart.addbodypart (GifBody); // Setzen Sie das Bild dataSource GIFDS = new farredataSource ("f: //picture//picture//4.jpg"); Datahandler gifdh = new Datahandler (GIFDS); gifbody.setDatahandler (Gifdh); gifbody.setheader ("content-id", "<"+gifds.getName ()+">"); //gifbody.setheader("Content-location "," http://www.itcast.cn/logo.gif "); // HTML Body htmlbody.SetContent ("<span style = 'color: rot; Schriftgröße: 16px'> Dies ist mein dritter Javamail-Test! Es enthält Anhänge und Bilder, die ein bisschen kompliziert ist ... </span> <br>" + "Das angezeigte Bild <img Src = 'utf.: 4.jpg'/>", ",", ",", ",", ",", "," text Message.Savechanges (); // E -Mail transport.Send (Nachricht); }}