1. Общ преглед
В този бърз урок ще разгледаме изпращането на имейл със и без прикачени файлове - използвайки основната Java пощенска библиотека.
2. Настройка и зависимост на проекта
За тази статия ще използваме прост проект, базиран на Maven, с зависимост от пощенската библиотека на Java:
javax.mail mail 1.5.0-b01
Най-новата версия можете да намерите тук.
3. Изпращане на обикновен текст и HTML имейл
Първо, трябва да конфигурираме библиотеката с идентификационните данни на нашия доставчик на имейл услуги. След това ще създадем сесия, която ще се използва при изграждането на нашето съобщение за изпращане.
Конфигурацията е чрез обект Java Properties :
Properties prop = new Properties(); prop.put("mail.smtp.auth", true); prop.put("mail.smtp.starttls.enable", "true"); prop.put("mail.smtp.host", "smtp.mailtrap.io"); prop.put("mail.smtp.port", "25"); prop.put("mail.smtp.ssl.trust", "smtp.mailtrap.io");
В конфигурацията на свойствата по-горе конфигурирахме имейл хоста като Mailtrap и използвахме порта, предоставен от услугата.
Сега нека преминем по-нататък, като създадем сесия с нашето потребителско име и парола:
Session session = Session.getInstance(prop, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } });
Потребителското име и паролата се дават от доставчика на пощенски услуги заедно с параметрите на хоста и порта.
Сега, когато имаме обект на пощенска сесия , нека създадем Mime съобщение за изпращане:
Message message = new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]")); message.setRecipients( Message.RecipientType.TO, InternetAddress.parse("[email protected]")); message.setSubject("Mail Subject"); String msg = "This is my first email using JavaMailer"; MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.setContent(msg, "text/html"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(mimeBodyPart); message.setContent(multipart); Transport.send(message);
В горния фрагмент първо създадохме екземпляр на съобщение с необходимите свойства - to, from и subject. Следван от mimeBodyPart, който има кодиране на текст / html, тъй като нашето съобщение е оформено в HTML.
Следващото нещо, което направихме, е да създадем екземпляр на обект MimeMultipart, който можем да използваме, за да обгърнем създадения от нас mimeBodyPart .
И накрая, ние си поставихме за съставно обекта, тъй като съдържанието на нашето послание и да използвате за изпращане () на транспорта цел да направи по пощата изпращане.
Така че, можем да кажем, че mimeBodyPart се съдържа в мултичаст, който се съдържа в съобщението. Следователно многочаст може да съдържа повече от един mimeBodyPart .
Това ще бъде фокусът на следващия раздел.
4. Изпращане на имейл с прикачен файл
След това, за да изпратим прикачен файл, трябва само да създадем друг MimeBodyPart и да прикачим файла (ите) към него:
MimeBodyPart attachmentBodyPart = new MimeBodyPart(); attachmentBodyPart.attachFile(new File("path/to/file"));
След това можем да добавим новата част на тялото към обекта MimeMultipart, който създадохме по-рано:
multipart.addBodyPart(attachmentBodyPart);
Това е всичко, което трябва да направим.
Още веднъж, ние си поставихме за съставно инстанция, както и съдържанието на съобщението обекта и най-накрая ще използваме изпращане () , за да направите по пощата изпращане .
5. Заключение
В заключение видяхме как да използваме родната библиотека за поща на Java, за да изпращаме имейли дори с прикачен файл.
Както винаги, пълният изходен код е достъпен в Github.