- 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 |