- Pošiljanje e-pošte z uporabo JavaMail API
- Koraki za pošiljanje e-pošte z uporabo JavaMail API
- Pridobite predmet seje
- Sestavite sporočilo
- pošljite sporočilo
- Preprost primer pošiljanja e-pošte z uporabo API-ja JavaMail
- Primer pošiljanja e-pošte z uporabo API-ja JavaMail prek strežnika SMTP, ki ga zagotavlja ponudnik gostitelja
Obstaja več načinov za pošiljanje e-pošte z uporabo JavaMail API. V ta namen morate imeti strežnik SMTP, ki je odgovoren za pošiljanje pošte.
Za pridobitev strežnika SMTP lahko uporabite eno od naslednjih tehnik:
- Namestite in uporabite kateri koli strežnik SMTP, kot je strežnik Postcast, strežnik Apache James, strežnik cmail itd. (ali)
- Uporabite strežnik SMTP, ki ga nudi ponudnik gostitelja, npr. moj strežnik SMTP je mail.javatpoint.com (ali)
- Uporabite strežnik SMTP, ki ga nudijo druga podjetja, npr. gmail itd.
Tukaj se bomo naučili zgornjih treh pristopov za pošiljanje e-pošte z uporabo javamail API-ja. Vendar bi se morali naučiti osnovnih korakov za pošiljanje e-pošte iz aplikacije Java.
Koraki za pošiljanje e-pošte z uporabo API-ja JavaMail
Za pošiljanje e-pošte z uporabo JavaMail sledite trem korakom. So naslednji:
| Pridobite predmet seje | ki hrani vse podatke o gostitelju, kot so ime gostitelja, uporabniško ime, geslo itd.
| sestavite sporočilo |
| pošljite sporočilo |
1) Pridobite objekt seje
The javax.mail.Razred seje ponuja dve metodi za pridobivanje predmeta seje, metodo Session.getDefaultInstance() in metodo Session.getInstance(). Za pridobitev objekta seje lahko uporabite katero koli metodo.
Metoda sejnega razreda
| št. | Metoda | Opis |
| 1 | javna statična seja getDefaultInstance(Lastnosti rekviziti) | vrne privzeto sejo. |
| 2 | javna statična seja getDefaultInstance(Properties props,Authenticator auth) | vrne privzeto sejo. |
| 3 | javna statična seja getInstance(Lastnosti rekviziti) | vrne novo sejo. |
| 4 | javna statična seja getInstance(lastnosti rekviziti,avtentifikator) | vrne novo sejo. |
Primer metode getDefaultInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);
Primer metode getInstance().
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);
2) Sestavite sporočilo
| Razred javax.mail.Message ponuja metode za sestavljanje sporočila. Je pa abstrakten razred, zato se večinoma uporablja njegov podrazred javax.mail.internet.MimeMessage class. |
| Če želite ustvariti sporočilo, morate posredovati objekt seje v konstruktorju razreda MimeMessage. Na primer: |
MimeMessage message=new MimeMessage(session);
| Zdaj je bil objekt sporočila ustvarjen, vendar za shranjevanje informacij v tem objektu razred MimeMessage ponuja številne metode. Oglejmo si metode, ki jih ponuja razred MimeMessage: |
Pogosto uporabljene metode razreda MimeMessage
| št. | Metoda | Opis |
| 1 | javni void setFrom(naslov naslova) | se uporablja za nastavitev polja glave iz. |
| 2 | public void addRecipient(Message.RecipientType type, Address address) | se uporablja za dodajanje danega naslova vrsti prejemnika. |
| 3 | public void addRecipients(Message.RecipientType type, Address[] addresses) | se uporablja za dodajanje danih naslovov vrsti prejemnika. |
| 4 | public void setSubject(String subject) | se uporablja za nastavitev polja glave zadeve. |
| 5 | public void setText(niz besedilnega sporočila) | se uporablja za nastavitev besedila kot vsebine sporočila z uporabo vrste besedilo/navadni MIME. |
| 6 | public void setContent(Object msg, String contentType) | se uporablja za nastavitev vsebine kot vsebine sporočila z uporabo podane vrste MIME. |
Primer sestavljanja sporočila:
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) Pošljite sporočilo
| Razred javax.mail.Transport nudi metodo za pošiljanje sporočila. |
Pogosto uporabljene metode transportnega razreda
| št. | Metoda | Opis |
| 1 | javno statično void pošiljanje (sporočilo sporočila) | se uporablja za pošiljanje sporočila. |
| 2 | javno statično void pošiljanje (sporočilo sporočila, naslov[] naslov) | se uporablja za pošiljanje sporočila na podane naslove. |
Primer pošiljanja sporočila:
Transport.send(message);
Preprost primer pošiljanja elektronske pošte v Javi
| V tem primeru se bomo naučili, kako poslati e-pošto s strežnikom SMTP, nameščenim na napravi, npr. Strežnik za postcast, strežnik Apache James, strežnik Cmail itd. Če želite poslati e-pošto s strežnikom SMTP, ki ga nudi ponudnik gostitelja, si oglejte primer za tem. |
| Za pošiljanje e-pošte z uporabo API-ja JavaMail morate naložiti dve datoteki jar:prenesite te datoteke jar ali pojdite na spletno mesto Oracle, da prenesete najnovejšo različico. |
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();} } } prenesite ta primer za pošiljanje e-pošteV tem primeru se bomo naučili, kako poslati e-pošto s strežnikom SMTP, nameščenim na napravi, npr. Strežnik Postcast, strežnik Apache James, strežnik Cmail itd. Če želite poslati e-pošto s strežnikom SMTP, ki ga nudi ponudnik gostitelja, si oglejte primer za tem.
Če želite zagnati ta primer, morate naložiti dve datoteki jar. Datoteko jar lahko naložite na 4 načine. Eden od načinov je nastavitev razredne poti. Poglejmo, kako zagnati ta primer:
| Naložite datoteko jar | c:> set classpath=mail.jar;activation.jar;.; |
| prevedite izvorno datoteko | c:> javac SendEmail.java |
| teči mimo | c:> java SendEmail |
Primer pošiljanja e-pošte v Javi prek strežnika SMTP, ki ga zagotavlja ponudnik gostitelja
| Če uporabljate strežnik SMTP, ki ga nudi ponudnik gostitelja, npr. mail.javatpoint.com morate potrditi uporabniško ime in geslo. Razred javax.mail.PasswordAuthentication se uporablja za preverjanje pristnosti gesla. |
| Če pošiljate e-pošto z JavaMail API, naložite dve datoteki jar:prenesite te datoteke jar ali pojdite na spletno mesto Oracle, da prenesete najnovejšo različico. |
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();} } } prenesite ta primer za pošiljanje e-pošteKot lahko vidite v zgornjem primeru, je treba ID uporabnika in geslo preveriti. Kot prikazuje ta program, lahko preprosto pošljete e-pošto. Ustrezno spremenite uporabniško ime in geslo. Poglejmo, kako ga znova zagnati s preprosto tehniko:
| Naložite datoteko jar | c:> set classpath=mail.jar;activation.jar;.; |
| prevedite izvorno datoteko | c:> javac SendMailBySite.java |
| teči mimo | c:> java SendMailBySite |