logo

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

  1. Изпращане на имейл чрез JavaMail API
  2. Стъпки за изпращане на имейл чрез JavaMail API
    1. Вземете обекта на сесията
    2. Съставете съобщението
    3. изпрати съобщението
  3. Прост пример за изпращане на имейл чрез JavaMail API
  4. Пример за изпращане на имейл с помощта на 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

Не.МетодОписание
1public void setFrom(адрес адрес)се използва за задаване на полето от заглавката.
2public void addRecipient(Message.RecipientType type, Address address)се използва за добавяне на дадения адрес към типа получател.
3public void addRecipients(Message.RecipientType type, Address[] addresses)се използва за добавяне на дадените адреси към типа получател.
4public void setSubject(тема на низ)се използва за задаване на полето за заглавка на темата.
5public void setText(низ текстово съобщение)се използва за задаване на текста като съдържание на съобщението с помощта на тип текст/обикновен MIME.
6public 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

изтеглете тези jar файлове или отидете на сайта на Oracle, за да изтеглите най-новата версия.
В този пример ще научим как да изпращаме имейл чрез SMTP сървър, инсталиран на машината, напр. Postcast сървър, Apache James сървър, Cmail сървър и т.н. Ако искате да изпратите имейл, като използвате вашия SMTP сървър, предоставен от хост доставчика, вижте примера след този.
За да изпратите имейл чрез API на JavaMail, трябва да заредите двата jar файла:
mail.jar
активиране.jar
 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 сървър, предоставен от хост доставчика

изтеглете тези jar файлове или отидете на сайта на Oracle, за да изтеглите най-новата версия.
Ако използвате SMTP сървъра, предоставен от хост доставчика, напр. mail.javatpoint.com, трябва да удостоверите потребителското име и паролата. Класът javax.mail.PasswordAuthentication се използва за удостоверяване на паролата.
Ако изпращате имейла чрез JavaMail API, заредете двата jar файла:
mail.jar
активиране.jar
 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