logo

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 relacekterý 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.MetodaPopis
1veřejná statická relace getDefaultInstance(Properties props)vrátí výchozí relaci.
2veřejná statická relace getDefaultInstance (props Properties, Authenticator auth)vrátí výchozí relaci.
3veřejná statická relace getInstance (rekvizity vlastností)vrátí novou relaci.
4veř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.MetodaPopis
1public void setFrom(adresa)se používá k nastavení pole od záhlaví.
2public void addRecipient(Message.RecipientType type, Address address)slouží k přidání dané adresy k typu příjemce.
3public void addRecipients(Message.RecipientType type, Address[] address)slouží k přidání daných adres k typu příjemce.
4public void setSubject(String subject)se používá k nastavení pole záhlaví předmětu.
5public void setText(String textmessage)se používá k nastavení textu jako obsahu zprávy pomocí typu text/plain MIME.
6public 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.MetodaPopis
1veřejné statické void odeslat (zpráva)se používá odeslat zprávu.
2veř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 jarc:> set classpath=mail.jar;activation.jar;.;
zkompilujte zdrojový souborc:> javac SendEmail.java
spuštěnc:> 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:

jak spustit skript v linuxu
Načtěte soubor jarc:> set classpath=mail.jar;activation.jar;.;
zkompilujte zdrojový souborc:> javac SendMailBySite.java
spuštěnc:> java SendMailBySite