- Odesílání e-mailů pomocí JavaMail API
- Kroky k odeslání e-mailu pomocí JavaMail API
- Získejte objekt relace
- Napište zprávu
- odeslat zprávu
- Jednoduchý příklad odesílání e-mailů pomocí JavaMail API
- 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ě
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:stáhněte si tyto soubory jar nebo přejděte na stránky Oracle a stáhněte si nejnovější verzi. |
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-mailuV 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
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:stáhněte si tyto soubory jar nebo přejděte na stránky Oracle a stáhněte si nejnovější verzi. |
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-mailuJak 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 jar | c:> set classpath=mail.jar;activation.jar;.; |
zkompilujte zdrojový soubor | c:> javac SendMailBySite.java |
spuštěn | c:> java SendMailBySite |