Например, в фактическом использовании, если вы делаете покупки в Taobao и подаете заявку на возврат средств, вы увидите электронное письмо по возврату в свой адрес электронной почты или зарегистрируете учетную запись, подайте заявку на проверку уведомления по электронной почте и т. Д. Все это отправка электронной почты. Здесь представит случай аномальной передачи электронной почты системой.
Подготовка:
Eclipse4.5 64 бит
JDK1.7 64 бит
Требуемая банка для отправки почты:
FASTJSON-1.1.24.Jar, Javax.mail-1.5.6.jar
Разработчик класса:
Тип перечисления, имя отправителя и адрес электронной почты
пакет почта; / ** *@class: разработчик *@descript: тип перечисления, имя отправителя и адрес электронной почты *@Дата: 26 октября 2016 г. в 8:07:50. Yuxiang "," [email protected] "), Yipeng (" ypeng "," [email protected] "), Liuan (" liu an "," [email protected] "), Chenyuhao (" Chen yuhao ", [email protected]") "(" chen yuhao ", [email protected]") Dong "," [email protected] "), Sanghaiqin (" Sang haiqin "," [email protected] "); // имя отправителя частное имя строки; // отправитель электронной почты частной строки почты; private Developer () {} Private Developer (String name, String Mail) {this.name = name; this.mail = mail; } / *** @Descript: Передайте имя отправителя, чтобы получить электронную почту отправителя* @param имени имени отправителя* @return* / public Static String getMail (String name) {for (разработчик C: Developer.values ()) {if (c.getName (). Equals (name)) {return C.mail; }} 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; }}
Класс ExceptionInfo: Информация о отправке
пакет почта; /** *@Class: ExceptionInfo *@descript: Информация о отправке *@Дата: 26 октября 2016 года в 20:11:27 *@Автор Sanghaiqin *@версия: v1.0 */public class ExceptionInfo {// имя отправителя частной строки разработчика; // метод отправителя частная строка метод; // отправитель URL Private String URL; // отправитель улавливает информацию об исключении частное исключение E; / *** @param Developmer Имя отправителя* @param метод отправителя* @param URL -отправитель URL* @param e Отправитель информации об исключении*/ public exceptionInfo (строка разработчика, метод строки, строки URL, Exception e) {super (); this.developer = разработчик; this.method = метод; this.url = url; this.e = e; } public String getDeveloper () {return Developer; } public void setDeveloper (строка разработчика) {this.developer = разработчик; } public String getMethod () {return Method; } public void setMethod (String Method) {this.method = method; } public String getUrl () {return url; } public void seturl (string url) {this.url = url; } public Exception gete () {return e; } public void sete (Exception e) {this.e = e; }} MailSenderInfo: Отправить информацию по электронной почте
пакет почта; импортировать java.util.properties; /** *@Class: MailSenderInfo *@descript: Отправить информацию по электронной почте *@Дата: 26 октября 2016 г. в 8:14:22 вечера *@Автор Sanghaiqin *@версия: v1.0 */public class mailsenderinfo {// IP private String Mailverhost от сервера, отправляя почту; // порт сервера, отправляющая почту, составляет 25 частных строковых mailverport = "25"; // Адрес отправителя почты частной строки FromAddress; // Адрес почтового получателя частной строки Toaddress; // Войдите в систему имени пользователя пользователя SERNER SERVING SEDRING SERVER; // Войдите в систему в почтовую отправку пароля Сервера // вам нужна аутентификация Private Boolean Validate = false; // Электронная почта тема частной строки темы; // текстовое содержание почтового контента частной строки; // Имя файла почтовой вложения частной строки [] ATTHFILENAMES; public mailsenderinfo () {super (); } public String getMailServerhost () {return mailerverhost; } public void setMailServerhost (String Mailverhost) {this.mailserverhost = mailerverhost; } public String getMailServerport () {return mailververport; } public void setMailServerport (String mailververport) {this.mailserverport = mailerverport; } public boolean isvalidate () {return validate; } public void setValidate (boolean validate) {this.validate = validate; } public String [] getAttachfilEnames () {return attachfilenames; } public void setAttachfilEnames (string [] filenames) {this.Attachfilenames = filenames; } public String getFromAddress () {return fromAddress; } public void setFromAddress (string fromAddress) {this.fromAddress = fromAddress; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; } public String getToadDress () {return toAddress; } public void cetTailDress (String toaddress) {this.toaddress = toaddress; } public String getUsername () {return username; } public void setUsername (string username) {this.username = username; } public String getSubject () {return toot; } public void setSubject (строка субъекта) {this.subject = subject; } public String getContent () {return Content; } public void setContent (String TextContent) {this.content = textContent; } / *** @descript: получить свойство электронной почты* @return* / public Properties getProperties () {PropertyUtil PropertyUtil = new PropertyUtil (); Свойства свойства = PropertyUtil.readProperties (); вернуть свойства; }} Класс myauthenticator: пользователь -аутентификатор
пакет почта; импортировать javax.mail.authenticator; импортировать javax.mail.passwordAuthentication; /** *@class: myAuthenticator *@descript: проверка пользователя *@Дата: 26 октября 2016 года в 8:57:45 *@Автор Sanghaiqin *@версия: v1.0 */public class myAuthenticator Extends Authenticator {// usermeme string username = null; // пароль String Password = null; public myAuthenticator () {} public myAuthenticator (String username, String Password) {this.username = username; this.password = пароль; } Защищенный пароль. }} Класс PropertyUtil: получить класс инструментов файлов свойств
пакет почта; импортировать java.io.fileinputstream; Импорт java.io.filenotFoundException; импортировать java.io.ioexception; импортировать java.io.inputstream; импортировать java.util.properties; / ** *@class: Propertyutil * @descript: получить класс инструмента «Свойства» * @Дата: 26 октября 2016 г. в 8:20:10 вечера * @Автор Sanghaiqin * @версия: v1.0 */ property Propertytil {/ ** *@descript: Загрузка ресурсов *@param resource file *@treuron *@thronotfoundexcret *@param InputStream inputStream = null; Свойства свойства = новые свойства (); // Использовать inputStream для получения файла ресурса Try {inputStream = new FileInputStream (ресурсы); // Загрузите свойства файла конфигурации.load (inputStream); } catch (filenotFoundException e) {e.printstackTrace (); } catch (ioException e) {e.printstackTrace (); } наконец {if (inputStream! = null) {try {inputStream.close (); } catch (ioException e) {e.printstackTrace (); }} return Properties; } / ** * @descript: прочитать файл свойств * @return * @throhs filenotfoundexception * / public properties readproperties () {String resources = PropertyUtil.class.getClassloader (). getResource ("prop.properties"). getPath (); Свойства свойства = LoadProperties (ресурсы); вернуть свойства; } / *** @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 username:"+mailsenderusername); // [email protected] String Path = PropertyUtil.class.getClassloader (). GetResource ("prop.properties"). GetPath (); System.out.println (path); // /g:/workspaces4.4/test/bin/prop.properties}} Файл ресурсов pro.properties:
#-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. #Адрес электронной почты отправителя [email protected]
Javamail Class: Отправить почтовый ящик
пакет почта; Импорт java.io.printwriter; импортировать java.io.stringwriter; импортировать java.io.unsupportedencodingexception; импортировать java.net.inetaddress; Импорт java.net.unknownhostexception; импортировать java.util.date; импортировать java.util.properties; импортировать javax.activation.datahandler; импортировать javax.activation.datasource; импортировать javax.activation.filedatasource; импортировать javax.mail.address; Импорт Javax. javax.mail.bodypart; импортировать javax.mail.message; Импорт javax.mail.messagingException; импортировать javax.mail.multipart; импортировать javax.mail.session; импортировать javax.mail.transport; Импорт javax.mail.internet.internetDdress; импортировать javax.mail.internet.mimebodypart; Импорт javax.mail.internet.mimemessage; Импорт javax.mail.internet.miMumultipart; импортировать 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 { // Получить электронную почту отправителя через string sender mail = developer.getmail (info.getDeveloper ()); if (mail! = null) {mailSenderInfo mailInfo = new MailSenderInfo (); // Установите текстовое содержимое электронной почты mailInfo.setContent ("ответственность:"+info.getDeveloper ()+"==> Server IP:"+inetAddress.getLocalhost (). GethostadDress ()+"==> Имя метода:"+info.getmethod ()+"= acdes:"+info. "+getEmessage (info.gete ())); // Установить адрес полученного по электронной почте mailInfo.setToaddress (mail); // тема электронной почты mailInfo.setsubject ("yika aitu уведомление об исключении"); // Отправить электронное письмо SendTextMail (mailInfo); }} catch (Unknownhostexception e) {e.printstackTrace (); }} /*** @Descript: отправить электронное письмо в текстовом формате* @param: mailInfo Информация электронной почты для отправки* @return: Отправить True после успешной отправки; вернуть false после неудачи */ public static boolean sendtextmail (mailsenderinfo mailInfo) {// определить, требуется ли аутентификация идентификации подлинности MyAuthenticator Authenticator = null; Properties pro = mailInfo.getProperties (); попробуйте {if ("true" .trim (). equals (pro.getproperty ("mail.smtp.auth"))) {// Если требуется аутентификация, создайте пароль аутентикутор Authenticator = new MyAuthenticator (Pro.GetProperty ("mail.sender.username"), pro.getProperty ("mail } // Создание сеанса для отправки почты на основе свойств почтового сеанса и аутентификатора пароля sendmailSession = session.getDefaultInstance (Pro, Authenticator); // Создать почтовое сообщение на основе сообщения с сеансом mailmessage = new Mimemessage (sendmailsession); // Создать отправителя адреса почтового сообщения из = new InternetAddress (pro.getProperty ("mail.sender.address")); // Установить отправителя почтового сообщения mailMessage.setFrom (от); // Создать адрес получателя почтового сообщения и установить его на адрес почтового сообщения = new InternetAddress (mailInfo.getToaddress ()); // message.recipienttype.to attribute указывает, что тип получателя - mailmessage.setrecipient (message.recipienttype.to, to); // Установить тему почтового сообщения mailmessage.setsubject (mailInfo.getSubject ()); // Установить время для отправки почтового сообщения mailMessage.setsentDate (new Date ()); // Установить основной контент почтового сообщения mailMessage.settext (mailInfo.getContent ()); // Отправить mail Transport.send (mailMessage); вернуть истину; } catch (messagingException ex) {ex.printStackTrace (); } вернуть false; } /** * @Descript: отправить почту в формате html * @param mailInfo: информация почты для отправки * @param вложение: Содержание вложения * @return: true при успешном отправке; false, когда не удалось */ public static boolean sendhtmlmail (mailsenderinfo mailInfo, string [] вложение) {// определить, требуется ли аутентификация идентификации подлинности myauthenticator autenticator = null; Properties pro = mailInfo.getProperties (); Попробуйте {// Если требуется аутентификация идентификации, создайте аутентикатор пароля if ("true" .trim (). equals (pro.getProperty ("mail.smtp.auth"))) {// Если требуется аутентификация идентификации, создайте аутентикатор пароля = новый Myauthenticator (pro.getProperty ("mail.sender.username"), pro.getProperty ("mail.sender.password")); } // Создание сеанса для отправки почты на основе свойств почтового сеанса и аутентификатора пароля. SESSION SENTMAILSESSESS = SESSION.GetDefaultInstance (Pro, Authenticator); // Создать почтовое сообщение на основе сообщения с сеансом mailmessage = new Mimemessage (sendmailsession); // Создание адреса адреса отправителя от = new InternetAddress (pro.getProperty ("mail.sender.address")); // Установить отправителя почтового сообщения mailMessage.setFrom (от); // Создать адрес получателя почтового сообщения и установить его на адрес почтового сообщения = new InternetAddress (mailInfo.getToaddress ()); // message.recipienttype.to attribute указывает, что тип получателя - mailmessage.setrecipient (message.recipienttype.to, to); // Установить тему почтового сообщения mailmessage.setsubject (mailInfo.getSubject ()); // Установить время отправки почтовых сообщений mailMessage.setsentDate (new Date ()); // Minimultipart Class - это класс контейнеров, который содержит объект MimeBodyPart Type Multious Mainpart = new MiMemultIpart (); // Создать MimeBodyPart, содержащий HTML Content BodyPart HTML = new MimeBodyPart (); // Установить контент html html.setContent (mailInfo.getContent (), "text/html; charset = utf-8"); // Добавить контент html mimebodypart mainpart.addbodypart (html); // Добавить содержимое вложения if (вложение! = Null) {for (string filePath: Attachment) {mimeBodyPart filePart = new MimeBodyPart (); DataSource Source = new FileDataSource (filePath); filePart.SetDataHandler (новый DataHandler (источник)); try {// Метод, циркулирующий в Интернете для решения искаженных имен файлов, на самом деле очень удобен для использования mimeutility.encodeword для решения FilePart.setFilename (mimeUtility.encodeword (source.getName ())); } catch (unsupportEncodingexception e) {e.printstacktrace (); } mainpart.addbodypart (filePart); }} // Установить объект MinimultIpart в почтовый содержимое mailMessage.setContent (mainpart); // сохранить контент mailmessage.savechanges (); // Отправить mailtransport.send (mailmessage); вернуть истину; } catch (messagingException ex) {ex.printStackTrace (); } вернуть false; } / *** @descript: получить информацию об исключении о методе отправителя* Используйте строки в качестве ввода символов и вывода физических узлов, то есть использование StringReader и StringWriter* PrintWriter (Writer Out, Boolean AutoFlush) Создайте новую PrintWriter с автоматической ряд // stringwriter output Information information stringwriter sw = new StringWriter (); Printwriter pw = new Printwriter (SW, True); e.printstacktrace (pw); pw.flush (); sw.flush (); вернуть sw.toString (); } /*** @descript: test* @param args* /public static void main (string [] args) {// test 1: отправить электронное письмо в текстовом формате try {string s = ""; S.Substring (2); } catch (Exception e) {e.printstackTrace (); System.out.println (getemessage (e)); SendExceptionMail (New ExceptionInfo (Developer.sanghaiqin.getName (), "get ()", "123", e)); } // Тест 2: Отправить электронное письмо в HTML Format MailSenderInfo mailInfo = new MailSenderInfo (); mailInfo.settoaddress ("[email protected]"); // Установить адрес электронной почты получателя mailInfo.setsubject ("title"); mailInfo.setContent ("Контент <h1> www.baidu.com </h1>"); String [] files = {"g: /upload/image/2016/10/28/1477372845440.jpg", "g: /upload/image/2016/10/28/1477372845660.jpg"}; Javamail.sendhtmlmail (mailInfo, файлы); // Отправить html format System.out.println («Отправить успешно»); }}Тестовый скриншот:
Тест 1: отправьте электронные письма в текстовом формате:
Тест 2: Отправить электронные письма в формате HTML:
Скриншот структуры проекта:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.