- Sähköpostin lähettäminen JavaMail API:lla
- Sähköpostin lähettämisen vaiheet JavaMail API:n avulla
- Hanki istuntoobjekti
- Kirjoita viesti
- lähetä viesti
- Yksinkertainen esimerkki sähköpostin lähettämisestä JavaMail API:lla
- Esimerkki sähköpostin lähettämisestä JavaMail API:lla isäntäpalveluntarjoajan tarjoaman SMTP-palvelimen kautta
On olemassa useita tapoja lähettää sähköpostia JavaMail API:n avulla. Tätä tarkoitusta varten sinulla on oltava SMTP-palvelin, joka vastaa sähköpostien lähettämisestä.
Voit käyttää jotakin seuraavista tekniikoista saadaksesi SMTP-palvelimen:
- Asenna ja käytä mitä tahansa SMTP-palvelinta, kuten Postcast-palvelinta, Apache James -palvelinta, cmail-palvelinta jne. (tai)
- Käytä isäntäpalveluntarjoajan tarjoamaa SMTP-palvelinta esim. SMTP-palvelimeni on mail.javatpoint.com (tai)
- Käytä muiden yritysten toimittamaa SMTP-palvelinta, esim. gmail jne.
Tässä aiomme oppia edellä mainitut kolme tapaa lähettää sähköpostia Javamail API:n avulla. Mutta meidän pitäisi oppia sähköpostin lähettämisen perusvaiheet Java-sovelluksesta.
Sähköpostin lähettämisen vaiheet JavaMail API:n avulla
Sähköpostin lähettämiseen JavaMaililla on seuraavat kolme vaihetta. Ne ovat seuraavat:
Hanki istuntoobjekti | joka tallentaa kaikki isäntätiedot, kuten isäntänimi, käyttäjätunnus, salasana jne.
kirjoittaa viestiä |
lähetä viesti |
1) Hanki istuntoobjekti
The javax.mail.Session-luokka tarjoaa kaksi tapaa saada istunnon objekti, Session.getDefaultInstance()-metodi ja Session.getInstance()-metodi. Voit käyttää mitä tahansa menetelmää istuntoobjektin saamiseksi.
Session-luokan menetelmä
Ei. | Menetelmä | Kuvaus |
1 | julkinen staattinen istunto getDefaultInstance (Ominaisuudet rekvisiitta) | palauttaa oletusistunnon. |
2 | julkinen staattinen istunto getDefaultInstance (Ominaisuudet, Authenticator auth) | palauttaa oletusistunnon. |
3 | julkinen staattinen istunnon saanti (Ominaisuudet) | palauttaa uuden istunnon. |
4 | julkinen staattinen istunnon saanti (Ominaisuudet, Authenticator auth) | palauttaa uuden istunnon. |
Esimerkki getDefaultInstance()-metodista
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);
Esimerkki getInstance()-menetelmästä
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);
2) Kirjoita viesti
Luokka javax.mail.Message tarjoaa menetelmiä viestin laatimiseen. Mutta se on abstrakti luokka, joten sen alaluokkaa javax.mail.internet.MimeMessage käytetään enimmäkseen. |
Viestin luomiseksi sinun on välitettävä istuntoobjekti MimeMessage-luokan rakentajassa. Esimerkiksi: |
MimeMessage message=new MimeMessage(session);
Nyt viestiobjekti on luotu, mutta tietojen tallentamiseen tähän objektiin MimeMessage-luokka tarjoaa monia menetelmiä. Katsotaanpa MimeMessage-luokan tarjoamia menetelmiä: |
MimeMessage-luokan yleisesti käytetyt menetelmät
Ei. | Menetelmä | Kuvaus |
1 | public void setFrom(osoiteosoite) | käytetään otsikkokentän asettamiseen. |
2 | public void addRecipient(Message.RecipientType type, Address address) | käytetään antaman osoitteen lisäämiseen vastaanottajatyyppiin. |
3 | public void addRecipients(Viesti.Vastaanottajatyypin tyyppi, Osoite[]-osoitteet) | käytetään annettujen osoitteiden lisäämiseen vastaanottajatyyppiin. |
4 | public void setSubject(merkkijonon aihe) | käytetään aiheen otsikkokentän asettamiseen. |
5 | public void setText(merkkijonotekstiviesti) | käytetään tekstin asettamiseen viestin sisällöksi käyttämällä text/plain MIME-tyyppiä. |
6 | public void setContent(Object msg, String contentType) | käytetään asettamaan sisältö viestin sisällöksi tiettyä MIME-tyyppiä käyttäen. |
Esimerkki viestin kirjoittamisesta:
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) Lähetä viesti
Luokka javax.mail.Transport tarjoaa menetelmän viestin lähettämiseen. |
Yleisesti käytetyt Transport-luokan menetelmät
Ei. | Menetelmä | Kuvaus |
1 | julkinen staattinen tyhjä lähetys (viestiviesti) | käytetään lähetä viesti. |
2 | julkinen staattinen void send (viestiviesti, osoite[] osoite) | käytetään lähetä viesti annettuihin osoitteisiin. |
Esimerkki viestin lähettämisestä:
Transport.send(message);
Yksinkertainen esimerkki sähköpostin lähettämisestä Java-kielellä
Tässä esimerkissä opimme lähettämään sähköpostia koneelle asennetun SMTP-palvelimen avulla, esim. Postcast-palvelin, Apache James -palvelin, Cmail-palvelin jne. Jos haluat lähettää sähköpostia käyttämällä isäntäpalveluntarjoajan tarjoamaa SMTP-palvelinta, katso esimerkki tämän jälkeen. |
Jotta voit lähettää sähköpostin JavaMail API:lla, sinun on ladattava kaksi jar-tiedostoa:lataa nämä jar-tiedostot tai siirry Oraclen sivustolle lataamaan uusin versio. |
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();} } }
lataa tämä esimerkki lähettääksesi sähköpostiaTässä esimerkissä opimme lähettämään sähköpostia koneelle asennetun SMTP-palvelimen avulla, esim. Postcast-palvelin, Apache James -palvelin, Cmail-palvelin jne. Jos haluat lähettää sähköpostia käyttämällä isäntäpalveluntarjoajan tarjoamaa SMTP-palvelinta, katso esimerkki tämän jälkeen.
Tämän esimerkin suorittamiseksi sinun on ladattava kaksi jar-tiedostoa. Jar-tiedoston lataamiseen on 4 tapaa. Yksi tapa on asettaa luokkapolku. Katsotaanpa, kuinka tämä esimerkki suoritetaan:
Lataa jar-tiedosto | c:> set classpath=mail.jar;activation.jar;.; |
käännä lähdetiedosto | c:> javac SendEmail.java |
johtama | c:> java SendEmail |
Esimerkki sähköpostin lähettämisestä Java-kielellä isäntäpalveluntarjoajan tarjoaman SMTP-palvelimen kautta
Jos käytät isäntäpalveluntarjoajan toimittamaa SMTP-palvelinta esim. mail.javatpoint.com , sinun on todennettava käyttäjätunnus ja salasana. Javax.mail.PasswordAuthentication-luokkaa käytetään salasanan todentamiseen. |
Jos lähetät sähköpostin JavaMail API:lla, lataa kaksi jar-tiedostoa:lataa nämä jar-tiedostot tai siirry Oraclen sivustolle lataamaan uusin versio. |
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();} } }
lataa tämä esimerkki lähettääksesi sähköpostiaKuten yllä olevasta esimerkistä näet, käyttäjätunnus ja salasana on todennettu. Kuten tämä ohjelma osoittaa, voit lähettää sähköpostia helposti. Vaihda käyttäjätunnus ja salasana vastaavasti. Katsotaanpa, kuinka se suoritetaan vielä kerran yksinkertaisella tekniikalla:
Lataa jar-tiedosto | c:> set classpath=mail.jar;activation.jar;.; |
käännä lähdetiedosto | c:> javac SendMailBySite.java |
johtama | c:> java SendMailBySite |