- Изпращане на имейл чрез JavaMail API
- Стъпки за изпращане на имейл чрез JavaMail API
- Вземете обекта на сесията
- Съставете съобщението
- изпрати съобщението
- Прост пример за изпращане на имейл чрез JavaMail API
- Пример за изпращане на имейл с помощта на JavaMail API през SMTP сървъра, предоставен от хост доставчика
Има различни начини за изпращане на имейл чрез API на JavaMail. За тази цел трябва да имате SMTP сървър, който отговаря за изпращането на имейли.
Можете да използвате една от следните техники, за да получите SMTP сървъра:
как да разкриете скрити приложения
- Инсталирайте и използвайте всеки SMTP сървър като Postcast сървър, Apache James сървър, cmail сървър и т.н. (или)
- Използвайте SMTP сървъра, предоставен от хост доставчика, напр. моят SMTP сървър е mail.javatpoint.com (или)
- Използвайте SMTP сървъра, предоставен от други компании, напр. gmail и др.
Тук ще научим по-горе три подхода за изпращане на имейл чрез API на javamail. Но трябва да научим основните стъпки за изпращане на имейл от java приложение.
Стъпки за изпращане на имейл чрез JavaMail API
Има следните три стъпки за изпращане на имейл чрез JavaMail. Те са както следва:
Вземете обекта на сесията | който съхранява цялата информация за хоста като име на хост, потребителско име, парола и др.
съставете съобщението |
изпрати съобщението |
1) Вземете обекта на сесията
The javax.mail.Клас на сесията предоставя два метода за получаване на обекта на сесията, метод Session.getDefaultInstance() и метод Session.getInstance(). Можете да използвате всеки метод, за да получите обекта на сесията.
преход на непрозрачност на css
Метод на класа на сесията
Не. | Метод | Описание |
1 | публична статична сесия getDefaultInstance(Properties props) | връща сесията по подразбиране. |
2 | публична статична сесия getDefaultInstance(Properties props,Authenticator auth) | връща сесията по подразбиране. |
3 | публична статична сесия getInstance (Properties props) | връща новата сесия. |
4 | публична статична сесия getInstance (Properties props, Authenticator auth) | връща новата сесия. |
Пример за метод getDefaultInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);
Пример за метод getInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);
2) Съставете съобщението
Класът javax.mail.Message предоставя методи за съставяне на съобщението. Но това е абстрактен клас, така че неговият подклас javax.mail.internet.MimeMessage клас се използва най-вече. |
За да създадете съобщението, трябва да предадете обект на сесия в конструктора на клас MimeMessage. Например: |
MimeMessage message=new MimeMessage(session);
Сега обектът за съобщения е създаден, но за съхраняване на информация в този обект класът MimeMessage предоставя много методи. Нека видим методите, предоставени от класа MimeMessage: |
Често използвани методи на клас MimeMessage
Не. | Метод | Описание |
1 | public void setFrom(адрес адрес) | се използва за задаване на полето от заглавката. |
2 | public void addRecipient(Message.RecipientType type, Address address) | се използва за добавяне на дадения адрес към типа получател. |
3 | public void addRecipients(Message.RecipientType type, Address[] addresses) | се използва за добавяне на дадените адреси към типа получател. |
4 | public void setSubject(тема на низ) | се използва за задаване на полето за заглавка на темата. |
5 | public void setText(низ текстово съобщение) | се използва за задаване на текста като съдържание на съобщението с помощта на тип текст/обикновен MIME. |
6 | public void setContent(Object msg, String contentType) | се използва за задаване на съдържанието като съдържание на съобщението, използвайки даден MIME тип. |
Пример за съставяне на съобщение:
MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...');
3) Изпратете съобщението
Класът javax.mail.Transport предоставя метод за изпращане на съобщението. |
Често използвани методи на транспортен клас
Не. | Метод | Описание |
1 | публично статично празно изпращане (съобщение) | се използва изпращане на съобщението. |
2 | публично статично празно изпращане (съобщение, адрес [] адрес) | се използва изпрати съобщението до дадените адреси. |
Пример за изпращане на съобщение:
Transport.send(message);
Прост пример за изпращане на имейл в Java
В този пример ще научим как да изпращаме имейл чрез SMTP сървър, инсталиран на машината, напр. Postcast сървър, Apache James сървър, Cmail сървър и т.н. Ако искате да изпратите имейл, като използвате вашия SMTP сървър, предоставен от хост доставчика, вижте примера след този. |
За да изпратите имейл чрез API на JavaMail, трябва да заредите двата jar файла:изтеглете тези jar файлове или отидете на сайта на Oracle, за да изтеглите най-новата версия. |
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args){ String to = '[email protected]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } }
изтеглете този пример, за да изпратите имейлВ този пример ще научим как да изпращаме имейл чрез SMTP сървър, инсталиран на машината, напр. Postcast сървър, Apache James сървър, Cmail сървър и т.н. Ако искате да изпратите имейл, като използвате вашия SMTP сървър, предоставен от хост доставчика, вижте примера след този.
За да стартирате този пример, трябва да заредите два jar файла. Има 4 начина за зареждане на jar файла. Един от начините е да зададете клас път. Нека видим как да изпълним този пример:
Заредете jar файла | c:> set classpath=mail.jar;activation.jar;.; |
компилирайте изходния файл | c:> javac SendEmail.java |
тичам от | c:> java SendEmail |
Пример за изпращане на имейл в Java през SMTP сървър, предоставен от хост доставчика
Ако използвате SMTP сървъра, предоставен от хост доставчика, напр. mail.javatpoint.com, трябва да удостоверите потребителското име и паролата. Класът javax.mail.PasswordAuthentication се използва за удостоверяване на паролата. |
Ако изпращате имейла чрез JavaMail API, заредете двата jar файла:изтеглете тези jar файлове или отидете на сайта на Oracle, за да изтеглите най-новата версия. |
import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } }
изтеглете този пример, за да изпратите имейлКакто можете да видите в горния пример, потребителското име и паролата трябва да бъдат удостоверени. Както илюстрира тази програма, можете лесно да изпращате имейл. Променете съответно потребителското име и паролата. Нека видим как да го стартираме отново чрез проста техника:
Заредете jar файла | c:> set classpath=mail.jar;activation.jar;.; |
компилирайте изходния файл | c:> javac SendMailBySite.java |
тичам от | c:> java SendMailBySite |