Изпращане на имейли с Java

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.