logo

Sähköpostin lähettäminen Javassa

  1. Sähköpostin lähettäminen JavaMail API:lla
  2. Sähköpostin lähettämisen vaiheet JavaMail API:n avulla
    1. Hanki istuntoobjekti
    2. Kirjoita viesti
    3. lähetä viesti
  3. Yksinkertainen esimerkki sähköpostin lähettämisestä JavaMail API:lla
  4. 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 istuntoobjektijoka 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
1julkinen staattinen istunto getDefaultInstance (Ominaisuudet rekvisiitta)palauttaa oletusistunnon.
2julkinen staattinen istunto getDefaultInstance (Ominaisuudet, Authenticator auth)palauttaa oletusistunnon.
3julkinen staattinen istunnon saanti (Ominaisuudet)palauttaa uuden istunnon.
4julkinen 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
1public void setFrom(osoiteosoite)käytetään otsikkokentän asettamiseen.
2public void addRecipient(Message.RecipientType type, Address address)käytetään antaman osoitteen lisäämiseen vastaanottajatyyppiin.
3public void addRecipients(Viesti.Vastaanottajatyypin tyyppi, Osoite[]-osoitteet)käytetään annettujen osoitteiden lisäämiseen vastaanottajatyyppiin.
4public void setSubject(merkkijonon aihe)käytetään aiheen otsikkokentän asettamiseen.
5public void setText(merkkijonotekstiviesti)käytetään tekstin asettamiseen viestin sisällöksi käyttämällä text/plain MIME-tyyppiä.
6public 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
1julkinen staattinen tyhjä lähetys (viestiviesti)käytetään lähetä viesti.
2julkinen 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ä

lataa nämä jar-tiedostot tai siirry Oraclen sivustolle lataamaan uusin versio.
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:
mail.jar
aktivointi.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();} } } 
lataa tämä esimerkki lähettääksesi sähköpostia

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.

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-tiedostoc:> set classpath=mail.jar;activation.jar;.;
käännä lähdetiedostoc:> javac SendEmail.java
johtamac:> java SendEmail

Esimerkki sähköpostin lähettämisestä Java-kielellä isäntäpalveluntarjoajan tarjoaman SMTP-palvelimen kautta

lataa nämä jar-tiedostot tai siirry Oraclen sivustolle lataamaan uusin versio.
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:
mail.jar
aktivointi.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();} } } 
lataa tämä esimerkki lähettääksesi sähköpostia

Kuten 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-tiedostoc:> set classpath=mail.jar;activation.jar;.;
käännä lähdetiedostoc:> javac SendMailBySite.java
johtamac:> java SendMailBySite