In diesem Artikel werden Javamail -Anwendungen basierend auf dem SSM -Framework (Spring 4.0 + SpringMVC + MyBatis) vorgestellt. Wenn die E -Mail auf dem QQ -Mailbox von Tencent basiert, handelt es sich tatsächlich auch um eine Foxmail -Mailbox.
Zunächst müssen wir das SMTP -Protokoll und die SSL -Verschlüsselung verstehen
SMTP: Das Ziel von Simple Mail Transfer -Protokal ist es, den Benutzern eine effiziente und zuverlässige E -Mail -Übertragung zu bieten. SMTP ist ein Protokoll für die Anfrageantwort, dh der Client sendet eine Anfrage an den Remote -Server. Der Server reagiert und hört den Port 25 an, sodass seine Arbeitsmodi zwei sind: Senden von SMTP und Empfangen von SMTP.
SSL -Verschlüsselung: Wird verwendet, um die Sicherheit von Browsern und Website -Servern zu gewährleisten. Das Prinzip wird in der Übersetzung erklärt:
Wenn Ihr Browser eine sichere Webseite vom Server anfordert (normalerweise https: //)
Der Server sendet sein Zertifikat und seinen öffentlichen Schlüssel zurück
Der Browser prüft, ob das Zertifikat von einer vertrauenswürdigen Institution ausgestellt wird, bestätigt, dass das Zertifikat gültig ist und dass dieses Zertifikat für diese Website vorliegt.
Ein zufälliger symmetrischer Schlüssel wird mit einem öffentlichen Schlüssel verschlüsselt, der die verschlüsselte URL enthält, um zusammen an den Server zu senden
Der Server entschlüsselt den Schlüssel, den Sie mit seinem eigenen privaten Schlüssel gesendet haben. Verwenden Sie dann diesen symmetrischen Verschlüsselungsschlüssel, um die von Ihnen angeforderte URL zu entschlüsseln.
Der Server verwendet den symmetrischen Schlüssel, den Sie gesendet haben, um die von Ihnen angeforderte Webseite zu verschlüsseln. Sie können die Webseite entschlüsseln, die Sie mit derselben Taste zurückgesandt haben
Stellen Sie dann vor, wie Sie Javamail -Senden von E -Mails implementieren. Zuerst müssen Sie das Glas Javamail herunterladen: http://xiazai.vevb.com/201612/yuanma/mail_jb51.jar
So aktivieren Sie den SMTP -Dienst im QQ -Mailbox, der als Server fungiert:
Schreiben Sie eine Business -Klasse, um E -Mails zu senden:
Paket com.appms.email; import Java.util.date; import Java.util.Properties; import Javax.mail.address; import Javax.Mail.Message; Import Javax.mail.Mail.Session; com.sun.mail.util.mailsslsocketfactory; öffentliche Klasse JavaemailSender {public static void sendemail (String toemailAddress, String E -MailTitle, String E -MailContent) löscht Ausnahme {Properties props = neue Eigenschaften (); // Debugg -debugging props.setProperty aktivieren ("mail.debug", "true"); // Der sendende Server erfordert Authentifizierung props.setProperty ("mail.smtp.auth", "true"); // Setzen Sie den E -Mail -Server -Hostnamen props.setProperty ("mail.host", "SMTP.qq.com"); // das Senden von Mail -Protokollname props.setProperty ("mail.transport.protocol", "SMTP"); / ** SSL -Authentifizierung, beachten Sie, dass Tencent Mailbox auf der SSL -Verschlüsselung basiert und alles, was Sie verwenden müssen, **/ mailsSlsocketFactory SF = neue MailsSlsocketFactory () zu verwenden; sf.settrustallhosts (true); props.put ("mail.smtp.ssl.enable", "true"); props.put ("mail.smtp.ssl.socketfactory", sf); // Session Session Session = Session.getInstance (Requisiten) erstellen; // Nachrichten senden, die basierend auf der Beobachtermodus -Nachricht msg = new mimemessage (Sitzung) entworfen werden; msg.setsubject (E -MailTitle); // StringBuilder verwenden, da StringBuilder schneller als String lädt und auch sehr threadsafe ist. StringBuilder Builder = new StringBuilder (); Builder.Append ("/n"+E -MailContent); Builder.Append ("/n time" + neues Datum ()); msg.setText (builder.toString ()); msg.setFrom (neue InternetAddress ("Ihr QQ -Mailbox")); Transport Transport = Session.GetTransport (); transport.connect ("SMTP.qq.com", "Ihr QQ Mailbox", "Das unabhängige Passwort, mit dem Sie den SMTP -Dienst aktivieren können"); // Senden Sie eine Nachricht transport.sendMessage (MSG, neue Adresse [] {New InternetAddress (Toemailaddress)}); Transport.close (); }}Schreiben Sie dann eine Controller -Klasse für SpringMVC Framework:
/** * zum Senden von E -Mail -Seite springen * @return * @throws Exception */@RequestMapping ("/gosendemail") public modelAndview gosendemail (httpServletRequest -Anfrage) löst eine Ausnahme aus {modelandView mv = this.getModelandView (); String -E -Mail = Request.GetParameter ("E -Mail"); if (E -Mail! mv.setViewName ("member/send_email"); Mv.AddObject ("E -Mail", E -Mail); } return mv; }/** * E-Mail senden * @return * @throws Exception */@RequestMapping (value = "/sendemail", procusses = "application/json; charset = utf-8") @Respondenbody public Object-Objekt sendemail (httpServletRequest) löst Ausnahme aus {map <String> map = new Hashmap <String, String> (). String msg = "OK"; // Statuszeichenfolge SEMail = Request.GetParameter ("E -Mail"); // Andere Mailbox -String -Titel = Anfrage.GetParameter ("Titel"); // Title String content = request.getParameter ("Inhalt"); // Inhalt JavaMailSender.sendemail (Toemail, Titel, Inhalt); map.put ("result", msg); Rückgabekarte; }Hier verwenden wir das JQuery Tip-Plug-In für Überprüfungsanforderungen, daher müssen wir die entsprechende JQuery-Datei vorstellen.
<script type = "text/javaScript" src = "source/js/jQuery-1.7.2.js"> </script> <!-TIPP-Feld-> <script type = "text/javascript" src = "source/js/jquery.tips.js"> </script>
JQuery Formular Validierung und Ajax Asynchrone Anfragen:
<!-E-Mail senden-> <script type = "text/javaScript"> // Funktion sendem () {if ($ ("#type"). Val () == "1") {$ ("#content"). Val (getContentTxt ()); } else {$ ("#content"). val (getContent ()); } if ($ ("#E -Mail"). Val () == "") {$ ("#E -Mail"). Tipps ({Seite: 3, msg: 'Bitte geben Sie die E -Mail ein', BG: '#ae81ff', Zeit: 2}); $ ("#E -Mail"). Focus (); false zurückgeben; } if ($ ("#title"). val () == "") {$ ("#title"). tipps ({Seite: 3, msg: 'Bitte geben Sie den Titel ein, BG:'#ae81ff ', Zeit: 2}); $ ("#Title"). Focus (); false zurückgeben; } if ($ ("#content"). val () == "") {$ ("#nr"). Tipps ({Seite: 1, msg: 'Bitte geben Sie den Inhalt ein, bg:'#ae81ff ', Zeit: 3}); false zurückgeben; } var E -Mail = $ ("#E -Mail"). Val (); var type = $ ("#type"). val (); var title = $ ("#title"). val (); var content = $ ("#content"). val (); $ ("#Zhongxin"). Hide (); $ ("#Zhongxin2"). Show (); $ .ajax ({type: "post", url: 'retroaction/sendemail.do? $ ("#msg"). Tipps ({Seite: 3, erfolgreich senden! }});} </script>Anrufe zu JSP -Seiten:
<!-E-Mail bearbeiten. <div style = "float: rechts;"> <a class = 'btn btn-mini btn-info' onclick = "dialog_open ();"> E-Mail-Adresse bearbeiten </i> </a> </div> </td> </tr> <tr> <tr> <td> <Eingabe type = "tection =" title ". </tr> <td id = "nr"> <script id = "editor" type = "text/plain"> </script> </td> </tr> <tr> <td style = "text-align: center;"> <a onclick = "sendem (); </div> <div id = "zhongxin2" style = "display: none"> <br/> <img src = "assets/bilder/jzx.gif" id = 'msg'/> <br/> <h4 id = 'msg'> send ... </h4> </div>
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.