Wenn Sie beispielsweise in Taobao einkaufen und eine Rückerstattung beantragen, sehen Sie eine Rückerstattungs -E -Mail in Ihrer E -Mail -Adresse oder registrieren Sie ein Konto, beantragen Sie die Überprüfung der E -Mail -Benachrichtigung usw. Diese sind alle E -Mail -Senden. Hier führen Sie den Fall einer abnormalen E -Mail -Übertragung durch das System ein.
Vorbereitung:
Eclipse4.5 64 Bit
JDK1.7 64 Bit
Das erforderliche Glas zum Senden von Mail:
fastjson-1.1.24.jar, javax.mail-1.5.6.jar
Klassenentwickler:
Aufzählungstyp, Name des Absenders und E -Mail -Adresse
Paketpost; /** * @class:Developer *@descript: Enumeration type, sender's name and email address*@date: October 26, 2016 at 8:07:50 pm *@author sanghaiqin *@version:V1.0 */ public enum Developer { zhoujing("Zhou Jing","[email protected]"), peiyuxiang("Pei Yuxiang","[email protected]"), yipeng("Ypeng","[email protected]"), liuan("Liu An","[email protected]"), chenyuhao("Chen Yuhao","[email protected]"), wangdong("Wang Dong "," [email protected] "), sanghaiqin (" Sang Haiqin "," [email protected] "); // Absender Name privater Zeichenfolge Name; // Absender E -Mail private Zeichenfolge Mail; private developer () {} privater Entwickler (String -Name, String -Mail) {this.name = name; this.mail = Mail; } / *** @Descript: Übergeben Sie den Namen des Absenders, um die E -Mail des Absenders zu erhalten }} return null; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public String getmail () {return mail; } public void setmail (String mail) {this.mail = mail; }} Klassenausnahme
Paketpost; /** *@class: exceptionInfo *@Deskript: Absenderinformationen *@Datum: 26. Oktober 2016 um 8:11:27 PM *@Autor Sanghaiqin *@Version: v1.0 */public class ExceptionInfo {// Sendername privater Stringentwickler; // Absendermethode private String -Methode; // Absender URL private String -URL; // Absender fängt Ausnahmeinformationen private Ausnahme E; / *** @param Developer -Absendername* @param -Methode Absendermethode* @param URL Absender URL* @param E -Absender fängt Ausnahmeinformationen*/ public exceptInfo (Stringentwickler, String -Methode, String -URL, Ausnahme E) {Super (); this.developer = Entwickler; this.method = Methode; this.url = url; this.e = e; } public String getDeveloper () {return Developer; } public void setDeveloper (String Developer) {this.developer = Entwickler; } public String getMethod () {Rückgabemethode; } public void setMethod (String -Methode) {this.Method = Methode; } public String geturl () {return url; } public void seturl (String url) {this.url = url; } öffentliche Ausnahme GetE () {return e; } public void sete (Ausnahme e) {this.e = e; }} MailSenderInfo: E -Mail -Informationen senden
Paketpost; Import Java.util.Properties; /** *@class: mailSenderInfo *@Deskript: E -Mail -Informationen senden *@Datum: 26. Oktober 2016 um 8:14:22 Uhr *@Autor Sanghaiqin *@Version: v1.0 */öffentliche Klasse mailSenderInfo {// Der ip private String mailserverhost des Servers, der das Mails sendet; // Der Port des Servers, der die E -Mail sendet, ist 25 private String mailserverport = "25"; // die Adresse des Absenders der mail privaten Zeichenfolge von Address; // die Adresse des E -Mail -Empfängers Private String Toaddress; // Melden Sie sich beim E -Mail -Senden -Server -Benutzernamen privater String -Benutzername an. // Melden Sie sich beim Postkennwort des E -Mail -Sendens des Servers an. Kennwort für private Zeichenfolge. // Benötigen Sie Authentifizierung privat boolean validate = false; // E -Mail -Betreff privater Zeichenfolge Betreff; // Textinhalte des mail privaten String -Inhalts; // Dateiname des Mail -Anhangs private Zeichenfolge [] Attemfilenamen; public MailSenderInfo () {Super (); } public String getMailServerHost () {mailserverHost zurückgeben; } public void setMailServerHost (String mailserverhost) {this.mailServerHost = MailServerHost; } public String getmailServerport () {mailserverport zurückgeben; } public void setMailServerport (String mailServerport) {this.mailserverport = mailServerport; } public boolean isvalidate () {return validate; } public void setvalidate (boolean validate) {this.validate = validate; } public String [] getattachFileNames () {return AttachFileNames; } public void setattachFileNames (String [] Dateinamen) {this.attachFileNames = Dateinamen; } public String getfromaddress () {return fromAddress; } public void setfromaddress (String fromAddress) {this.fromaddress = fromAddress; } public String getPassword () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; } public String GetToaddress () {return toaddress; } public void settoaddress (String Toaddress) {this.toaddress = toaddress; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getUntject () {return thema; } public void setSubject (String -Subjekt) {this.subject = Subjekt; } public String getContent () {return content; } public void setContent (String textContent) {this.content = textContent; } / *** @Descript: E -Mail -Sitzungseigenschaft erhalten* @return* / public Properties getProperties () {PropertyUtil PropertyUtil = new PropertyUtil (); Properties Properties = PropertyUtil.readProperties (); Rückgabeeigenschaften; }} Klasse MyAuthenticator: Benutzerauthentikator
Paketpost; import Javax.mail.Authenticator; Javax.Mail.PasswordAuthentication importieren; /** *@class: MyAuthenticator *@Deskript: Benutzerüberprüfung *@Datum: 26. Oktober 2016 um 8:57:45 Uhr *@Autor Sanghaiqin *@Version: v1.0 */public class myauthenticator erweitert Authenticator {// username String username = null; // Passwort String password = null; public myAuthenticator () {} public myAuthenticator (String -Benutzername, String -Passwort) {this.username = userername; this.Password = Passwort; } Protected PasswordAuthentication getPasswordAuthentication () {Neue PasswordAuthentication zurückgeben (Benutzername, Passwort); }} Klasse PropertyUtil: Eigenschaften Datei -Tool -Klasse erhalten
Paketpost; import Java.io.FileInputStream; importieren java.io.filenotfoundException; importieren java.io.ioException; importieren java.io.inputstream; Import Java.util.Properties; / ** *@class: PropertyUtil * @Deskript: Eigenschaften Datei -Toolklasse erhalten * @Datum: 26. Oktober 2016 um 8:20:10 Uhr * @Autor SangHaiqin * @Version: v1.0 */ public class PropertyUtil {/ ** *@Descript: Laderessourcen -Datei *@Param Ressourcen -Ressourcen -Datei *@ressurn *@Throws fileNows @throws fileNows @throws fileNows @throws fileNows @throws fileNows fileNows @throws fileNows @throws fileNows @throws fileNows @throws fileNots InputStream InputStream = NULL; Eigenschaften Eigenschaften = neue Eigenschaften (); // InputStream verwenden, um eine Ressourcendatei zu erhalten, try {inputStream = new FileInputStream (Ressourcen); // laden Sie die Eigenschaften der Konfigurationsdatei.load (inputStream); } catch (FilenotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } endlich {if (inputStream! = null) {try {inputStream.close (); } catch (ioException e) {e.printstacktrace (); }} Rückgabeeigenschaften; } / ** * @Descript: Eigenschaftsdatei lesen * @return * @throws filenotFoundException * / public Properties readProperties () {String ressourcen = propertyutil.class.getClassloader (). getResource ("Prop.Properties"). getPath (); Eigenschaften Eigenschaften = LoadProperties (Ressourcen); Rückgabeeigenschaften; } / *** @descript: test* @param args* / public static void main (string [] args) {propertyUtil p = new PropertyUtil (); Properties pro = P.ReadProperties (); String mailSenderusername = (string) pro.get ("mail.sender.username"); System.out.println ("Mail -Sender -Benutzername:"+MailSenderUserName); // [email protected] String path = propertyutil.class.getClassloader (). GetResource ("prop.Properties"). GetPath (); System.out.println (Path); // /g:/workspaces4.4/test/bin/prop.properties}} Ressourcendatei Pro.Properties:
#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ #E -Mail -Adresse des Absenders [email protected]
Javamail -Klasse: Mailbox senden
Paketpost; Import Java.io.printwriter; Import Java.io.StringWriter; importieren java.io.unsupportedenCodingException; importieren java.net.inetaddress; Importieren Sie java.net.unnownhostException; import Java.util.date; Import Java.util.Properties; Import Javax.Activation.Datahandler; import Javax.Activation.DataSource; Import Javax.Activation.Filedatasource; import Javax.mail.address; Javax importieren. javax.mail.bodypart; Javax.Mail.Message importieren; Javax.Mail.MessagingException importieren; import Javax.mail.multipart; 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; importieren javax.mail.internet.mimeutility; /** * @class:JavaMail *@descript:Jar package required to send information mailbox*: *fastjson-1.1.24.jar *javax.mail-1.5.6.jar *@date: October 26, 2016 at 8:13:05 pm *@author sanghaiqin *@version:V1.0 */ public class JavaMail { public static void sendExceptionMail(ExceptionInfo info){ try {// Holen Sie sich die E -Mail des Absenders über die Sender String mail = Entwickler.getmail (info.getDeveloper ()); if (mail! // Legen Sie den Textinhalt des E -Mail -MailInfo.SetContent ("verantwortlich:"+info.getDeveloper ()+"==> Server IP:"+inetadDress.getLocalHost (). GethostadDress ()+"==> Methodname:"+info.getMethod ()+"+" ==> Adresse: "+Info.geturl ()+==> AUTFORM:"+Info.Ge.)+"==>+"+"==> AUSBILD: "+Getemessage (info.Gete ())); // Setzen Sie die Adresse des E -Mail -Empfängers mailinfo.settoaddress (Mail); // E -Mail -Betreff MailInfo.setsubject ("Yika AITU -Ausnahmebenachrichtigung"); // E -Mail -SendTextMail (MailInfo) senden; }} catch (unbekannteHostException e) {e.printstacktrace (); }} /*** @descript: E -Mail im Textformat senden* @param: mailInfo Informationen zur Sendung der E -Mail* @Return: TRUE nach erfolgreichem Senden; Rückgabe falsch nach dem Scheitern */ public static boolean sendTextmail (MailSenderInfo MailInfo) {// Bestimmen Sie, ob die Identitätsauthentifizierung erforderlich ist, MyAuthenticator Authenticator = null; Properties pro = MailInfo.getProperties (); Versuchen Sie {if ("true" .trim (). Equals (pro.getProperty ("mail.smtp.auth")) {// Wenn die Authentifizierung ein Kennwort -Authenticator Authenticator = new myauthenticator (pro.getProperty ("mail.sender.username"), pro.getProperty ("mail.sender"), erstellen Sie erforderlich. } // Erstellen Sie eine Sitzung, um E -Mails basierend auf den E -Mail -Sitzungseigenschaften und den Kennwortauthenticator -Sitzungen zu senden sendmailSession = session.getDefaultInstance (Pro, Authenticator); // Erstellen Sie eine E -Mail -Nachricht basierend auf der Sitzungsnachricht MailMessage = new mimemessage (sendmailSession); // Erstellen Sie den Absender der Mail -Nachrichtenadresse bei = new InternetAddress (pro.getProperty ("mail.sender.address"); // Setzen Sie den Absender der Mail -Nachricht MailMessage.setfrom (von); // Erstellen Sie die Empfängeradresse der Mail -Nachricht und setzen Sie sie auf die Mail -Nachrichtenadresse auf = new InternetAddress (mailInfo.gettoaddress ()); // Message.RecipientType.TO -Attribut gibt an, dass der Typ des Empfängers an mailMessage.setRecipient (Message.RecipientType.to) ist; // Setzen Sie das Thema der Mail -Nachricht mailMessage.setsubject (mailInfo.getSubject ()); // Legen Sie die Zeit für das Senden der Mail -Nachricht mailMessage.setentDate (neuer Datum ()) fest; // den Hauptinhalt der Mail -Nachricht mailMessage.setText (mailInfo.getContent ()) festlegen; // Mail transports senden.send (MailMessage); zurückkehren; } catch (MessagingException ex) {ex.printstacktrace (); } return false; } /** * @Descript: Senden Sie E -Mail im HTML -Format * @param MailInfo: Informationen der zugesandten E -Mails * @Param Anhang: Anhangsinhalt * @Return: TRUE, wenn erfolgreich gesendet wird; FALSCH, wenn ausgefallen */ public static boolean sendhtmlmail (MailSenderInfo MailInfo, String [] Anhang) {// Bestimmen Sie, ob die Identitätsauthentifizierung erforderlich ist, myauthenticator authenticator = null; Properties pro = MailInfo.getProperties (); Versuchen Sie {// Wenn die Identitätsauthentifizierung erforderlich ist, erstellen Sie einen Kennwortauthentikator, wenn ("true" .trim (). Equals (pro.getProperty ("mail.smtp.auth"))) {// Wenn Identitätsauthentifizierung erforderlich ist, erstellen Sie ein Kennwortauthentikator = new MyAuthenticator (pro.getProperty ("mail.sender.username"), pro.getProperty ("mail.sender.password")); } // Erstellen Sie eine Sitzung, um E -Mails basierend auf den E -Mail -Sitzungseigenschaften und dem Kennwortauthentikator zu senden. Sitzung sendmailSession = session.getDefaultInstance (Pro, Authenticator); // Erstellen Sie eine E -Mail -Nachricht basierend auf der Sitzungsnachricht MailMessage = new mimemessage (sendmailSession); // Erstellen Sie eine E -Mail -Absenderadresse bei = new InternetAddress (pro.getProperty ("mail.sender.address"); // Setzen Sie den Absender der Mail -Nachricht MailMessage.setfrom (von); // Erstellen Sie die Empfängeradresse der Mail -Nachricht und setzen Sie sie auf die Mail -Nachrichtenadresse auf = new InternetAddress (mailInfo.gettoaddress ()); // Message.RecipientType.TO -Attribut gibt an, dass der Typ des Empfängers an mailMessage.setRecipient (Message.RecipientType.to) ist; // Setzen Sie das Thema der Mail -Nachricht mailMessage.setsubject (mailInfo.getSubject ()); // Legen Sie die Zeit für das Senden von Mail -Nachrichten mailMessage.setSentDate (New Date ()) fest; // minimultiPart -Klasse ist eine Containerklasse, die ein Objekt von Mimebodypart -Typ Multipart MainPart = new mimemultiPart () enthält; // Erstellen Sie einen Mimebodypart, der HTML -Inhalt bodypart html = neuer mimebodypart () enthält; // HTML-Inhalt html.setContent (mailInfo.getContent (), "text/html; charSet = utf-8") festlegen; // HTML -Inhalt Mimebodypart mainPart.Addbodypart (HTML) hinzufügen; // Anhangsinhalt hinzufügen if (Anhang! = Null) {für (String filepath: Anhang) {mimebodypart filePart = new Mimebodypart (); DataSource Source = new fileDataSource (filepath); filepart.setDatahandler (New Datahandler (Quelle)); Versuchen Sie {// Die online zirkulierende Methode zur Lösung von Dateinamen, die von Mimeutility.enNeWord verwendet werden können, um FilePart.SetFileName (Mimeutility.encodeWord (Source.GetName ()))) zu verwenden; } catch (unportedenCodingException e) {e.printstacktrace (); } mainPart.addbodypart (filePart); }} // Das minimultiPart -Objekt auf den Mail -Inhalt mailMessage.setContent (mainPart) festlegen; // Halten Sie den Inhalt mailMessage.savechanges (); // mailTransport.send (MailMessage) senden; zurückkehren; } catch (MessagingException ex) {ex.printstacktrace (); } return false; } / *** @descript: Ausnahmeinformationen zur Absendermethode* Verwenden Sie Zeichenfolgen als Zeicheneingangs- und Ausgabestroms von physischen Knoten, dh die Verwendung von StringReader und StringWriter* Printwriter (writer out, boolean autoflush) Erstellen Sie einen neuen Printwriter mit automatischen Auffrischung der Reihen, die automatisch aufgestellt werden können. // StringWriter -Ausgangsausnahmeinformation StringWriter sw = new StringWriter (); Pressewriter PW = neuer Pressewriter (SW, True); E. Printstacktrace (PW); pw.flush (); sw.flush (); return sw.tostring (); } /*** @descript: test* @param args* /public static void main (string [] args) {// Test 1: E -Mail im Textformat senden {string s = ""; S. Substring (2); } catch (Ausnahme e) {e.printstacktrace (); System.out.println (getemessage (e)); sendExceptionMail (neuer Ausnahme- (Entwickler.Sanghaiqin.getName (), "get ()", "123", e)); } // Test 2: E -Mail in HTML -Format mailsenderInfo mailinfo = new MailSenderInfo (); MailInfo.settoaddress ("[email protected]"); // Setzen Sie die E -Mail -Adresse des Empfängers mailinfo.setsubject ("title"); MailInfo.setContent ("Inhalt <h1> www.baidu.com </h1>"); String [] files = {"g: /upload/image/2016/10/28/1477372845440.jpg", "g: /upload/image/2016/10/28/147737284560.jpg"}; Javamail.sendhtmlmail (MailInfo, Dateien); // HTML -Format system.out.println ("erfolgreich senden"); }}Test Screenshot:
Test 1: Senden Sie E -Mails im Textformat:
Test 2: Senden Sie E -Mails im HTML -Format:
Projektstruktur Screenshot:
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.