Odesílání e-mailů v Javě

  1. Odesílání e-mailů pomocí JavaMail API
  2. Kroky k odeslání e-mailu pomocí JavaMail API
    1. Získejte objekt relace
    2. Napište zprávu
    3. odeslat zprávu
  3. Jednoduchý příklad odesílání e-mailů pomocí JavaMail API
  4. Příklad odesílání e-mailů pomocí JavaMail API prostřednictvím serveru SMTP poskytnutého poskytovatelem hostitele

Existují různé způsoby, jak posílat e-maily pomocí JavaMail API. Pro tento účel musíte mít SMTP server, který je zodpovědný za odesílání e-mailů.

K získání serveru SMTP můžete použít jednu z následujících technik:

  • Nainstalujte a používejte jakýkoli server SMTP, jako je server Postcast, server Apache James, server cmail atd. (nebo)
  • Použijte SMTP server poskytovaný poskytovatelem hostitele, např. můj SMTP server je mail.javatpoint.com (nebo)
  • Použijte SMTP server poskytovaný jinými společnostmi, např. gmail atd.

Zde se naučíme výše uvedené tři přístupy k odesílání e-mailů pomocí Javamail API. Ale měli bychom se naučit základní kroky pro odesílání e-mailů z java aplikace.


Kroky k odeslání e-mailu pomocí JavaMail API

Pro odeslání e-mailu pomocí JavaMailu jsou následující tři kroky. Jsou následující:

    Získejte objekt relace který ukládá všechny informace o hostiteli, jako je název hostitele, uživatelské jméno, heslo atd. napsat zprávu odeslat zprávu


1) Získejte objekt relace

The třída javax.mail.Session poskytuje dvě metody pro získání objektu relace, metodu Session.getDefaultInstance() a metodu Session.getInstance(). K získání objektu relace můžete použít jakoukoli metodu.

Metoda třídy Session

Ne. Metoda Popis
1 veřejná statická relace getDefaultInstance(Properties props) vrátí výchozí relaci.
2 veřejná statická relace getDefaultInstance (props Properties, Authenticator auth) vrátí výchozí relaci.
3 veřejná statická relace getInstance (rekvizity vlastností) vrátí novou relaci.
4 veřejná statická relace getInstance (podpory vlastností, authenticator auth) vrátí novou relaci.

Příklad metody getDefaultInstance().

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);  

Příklad metody getInstance().

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);  

2) Napište zprávu

Třída javax.mail.Message poskytuje metody pro sestavení zprávy. Ale je to abstraktní třída, takže se většinou používá její podtřída javax.mail.internet.MimeMessage.
Chcete-li vytvořit zprávu, musíte předat objekt relace v konstruktoru třídy MimeMessage. Například:
 MimeMessage message=new MimeMessage(session);  
Nyní byl vytvořen objekt zprávy, ale pro ukládání informací do tohoto objektu třída MimeMessage poskytuje mnoho metod. Podívejme se na metody poskytované třídou MimeMessage:

Běžně používané metody třídy MimeMessage

Ne. Metoda Popis
1 public void setFrom(adresa) se používá k nastavení pole od záhlaví.
2 public void addRecipient(Message.RecipientType type, Address address) slouží k přidání dané adresy k typu příjemce.
3 public void addRecipients(Message.RecipientType type, Address[] address) slouží k přidání daných adres k typu příjemce.
4 public void setSubject(String subject) se používá k nastavení pole záhlaví předmětu.
5 public void setText(String textmessage) se používá k nastavení textu jako obsahu zprávy pomocí typu text/plain MIME.
6 public void setContent(Object msg, String contentType) se používá k nastavení obsahu jako obsahu zprávy pomocí daného typu MIME.

Příklad pro vytvoření zprávy:

 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) Odešlete zprávu

Třída javax.mail.Transport poskytuje metodu pro odeslání zprávy.

Běžně používané metody třídy Transport

Ne. Metoda Popis
1 veřejné statické void odeslat (zpráva) se používá odeslat zprávu.
2 veřejné statické void odeslání (zpráva, adresa[] adresa) odešlete zprávu na uvedené adresy.

Příklad odeslání zprávy:

 Transport.send(message);  

Jednoduchý příklad odesílání e-mailů v Javě

stáhněte si tyto soubory jar nebo přejděte na stránky Oracle a stáhněte si nejnovější verzi.
V tomto příkladu se naučíme, jak odesílat e-maily pomocí serveru SMTP nainstalovaného na počítači, např. Postcast server, Apache James server, Cmail server atd. Pokud chcete odesílat e-maily pomocí vašeho SMTP serveru poskytnutého poskytovatelem hostitele, podívejte se na příklad po tomto.
Chcete-li odeslat e-mail pomocí JavaMail API, musíte načíst dva soubory jar:
mail.jar
aktivace.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();} } }  
stáhněte si tento příklad pro odeslání e-mailu

V tomto příkladu se naučíme, jak odesílat e-maily pomocí serveru SMTP nainstalovaného na počítači, např. Postcast server, Apache James server, Cmail server atd. Pokud chcete odesílat e-maily pomocí vašeho SMTP serveru poskytnutého poskytovatelem hostitele, podívejte se na následující příklad.

Chcete-li spustit tento příklad, musíte načíst dva soubory jar. Existují 4 způsoby, jak načíst soubor jar. Jedním ze způsobů je nastavení classpath. Podívejme se, jak spustit tento příklad:

Načtěte soubor jar c:> set classpath=mail.jar;activation.jar;.;
zkompilujte zdrojový soubor c:> javac SendEmail.java
spuštěn c:> java SendEmail

Příklad odeslání e-mailu v Javě přes SMTP server poskytovaný poskytovatelem hostitele

stáhněte si tyto soubory jar nebo přejděte na stránky Oracle a stáhněte si nejnovější verzi.
Pokud používáte server SMTP poskytovaný poskytovatelem hostitele, např. mail.javatpoint.com , musíte ověřit uživatelské jméno a heslo. K ověření hesla se používá třída javax.mail.PasswordAuthentication.
Pokud odesíláte e-mail pomocí JavaMail API, načtěte dva soubory jar:
mail.jar
aktivace.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();} } }  
stáhněte si tento příklad pro odeslání e-mailu

Jak můžete vidět ve výše uvedeném příkladu, ID uživatele a heslo je třeba ověřit. Jak ukazuje tento program, můžete snadno odesílat e-maily. Změňte odpovídajícím způsobem uživatelské jméno a heslo. Podívejme se, jak to znovu spustit jednoduchou technikou:

Načtěte soubor jar c:> set classpath=mail.jar;activation.jar;.;
zkompilujte zdrojový soubor c:> javac SendMailBySite.java
spuštěn c:> java SendMailBySite