logo

Sende e-post i Java

  1. Sende e-post ved hjelp av JavaMail API
  2. Trinn for å sende e-post ved hjelp av JavaMail API
    1. Hent sesjonsobjektet
    2. Skriv meldingen
    3. send meldingen
  3. Enkelt eksempel på å sende e-post ved hjelp av JavaMail API
  4. Eksempel på sending av e-post ved hjelp av JavaMail API gjennom SMTP-serveren levert av vertsleverandøren

Det er forskjellige måter å sende e-post ved hjelp av JavaMail API. For dette formålet må du ha en SMTP-server som er ansvarlig for å sende e-post.

Du kan bruke en av følgende teknikker for å få SMTP-serveren:

b+ tre
  • Installer og bruk hvilken som helst SMTP-server som Postcast-server, Apache James-server, cmail-server osv. (eller)
  • Bruk SMTP-serveren levert av vertsleverandøren, f.eks. SMTP-serveren min er mail.javatpoint.com (eller)
  • Bruk SMTP-serveren levert av andre selskaper, f.eks. gmail osv.

Her skal vi lære ovenfor tre tilnærminger for å sende e-post ved hjelp av javamail API. Men vi bør lære de grunnleggende trinnene for å sende e-post fra java-applikasjonen.


Trinn for å sende e-post ved hjelp av JavaMail API

Det er følgende tre trinn for å sende e-post med JavaMail. De er som følger:

    Hent sesjonsobjektetsom lagrer all informasjon om verten som vertsnavn, brukernavn, passord etc.skrive meldingen send meldingen


1) Hent sesjonsobjektet

De javax.mail.Session klasse gir to metoder for å hente objektet for økten, Session.getDefaultInstance()-metoden og Session.getInstance()-metoden. Du kan bruke hvilken som helst metode for å hente sesjonsobjektet.

kmp algoritme

Metode for økt klasse

Nei.MetodeBeskrivelse
1offentlig statisk økt getDefaultInstance(Properties rekvisitter)returnerer standardøkten.
2offentlig statisk økt getDefaultInstance (Properties rekvisitter, Authenticator auth)returnerer standardøkten.
3offentlig statisk sesjon getInstance (Properties rekvisitter)returnerer den nye økten.
4offentlig statisk sesjon getInstance (Properties props, Authenticator auth)returnerer den nye økten.

Eksempel på getDefaultInstance()-metoden

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

Eksempel på getInstance()-metoden

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) Skriv meldingen

Javax.mail.Message-klassen gir metoder for å komponere meldingen. Men det er en abstrakt klasse, så underklassen javax.mail.internet.MimeMessage-klassen brukes mest.
For å lage meldingen, må du sende et øktobjekt i MimeMessage-klassekonstruktøren. For eksempel:
 MimeMessage message=new MimeMessage(session); 
Nå er meldingsobjektet opprettet, men for å lagre informasjon i dette objektet gir MimeMessage-klassen mange metoder. La oss se metoder levert av MimeMessage-klassen:

Vanlige metoder for MimeMessage-klassen

Nei.MetodeBeskrivelse
1public void setFrom (adresseadresse)brukes til å angi fra-hodefeltet.
2public void addRecipient(Message.RecipientType type, Address address)brukes til å legge til den gitte adressen til mottakertypen.
3public void addRecipients(Message.RecipientType type, Address[]-adresser)brukes til å legge til de oppgitte adressene til mottakertypen.
4public void setSubject(strengemne)brukes til å angi emneoverskriftsfeltet.
5public void setText(String tekstmelding)brukes til å angi teksten som meldingsinnhold ved hjelp av tekst/vanlig MIME-type.
6public void setContent(Object msg, String contentType)brukes til å angi innholdet som meldingsinnhold ved å bruke gitt MIME-type.

Eksempel for å skrive meldingen:

 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) Send meldingen

javax.mail.Transport-klassen gir en metode for å sende meldingen.

Vanlig brukte metoder i transportklassen

Nei.MetodeBeskrivelse
1offentlig statisk void send (meldingsmelding)brukes sende meldingen.
2offentlig statisk void send (meldingsmelding, adresse[] adresse)brukes sende meldingen til de oppgitte adressene.

Eksempel for å sende meldingen:

 Transport.send(message); 

Enkelt eksempel på å sende e-post i Java

last ned disse jar-filene eller gå til Oracle-nettstedet for å laste ned den nyeste versjonen.
I dette eksemplet skal vi lære hvordan du sender e-post med SMTP-server installert på maskinen, f.eks. Postcast-server, Apache James-server, Cmail-server etc. Hvis du ønsker å sende e-post ved å bruke SMTP-serveren fra vertsleverandøren, se eksemplet etter dette.
For å sende e-posten ved hjelp av JavaMail API, må du laste de to jar-filene:
mail.jar
activation.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();} } } 
last ned dette eksemplet for å sende e-post

I dette eksemplet skal vi lære hvordan du sender e-post med SMTP-server installert på maskinen, f.eks. Postcast-server, Apache James-server, Cmail-server etc. Hvis du ønsker å sende e-post ved å bruke SMTP-serveren fra vertsleverandøren, se eksemplet etter dette.

For å kjøre dette eksemplet må du laste inn to jar-filer. Det er 4 måter å laste jar-filen på. En av måtene er satt klassesti. La oss se hvordan du kjører dette eksemplet:

Last inn jar-filenc:> set classpath=mail.jar;activation.jar;.;
kompiler kildefilenc:> javac SendE-post.java
drevet avc:> java SendE-post

Eksempel på sending av e-post i Java via SMTP-server levert av vertsleverandøren

last ned disse jar-filene eller gå til Oracle-nettstedet for å laste ned den nyeste versjonen.
Hvis du bruker SMTP-serveren levert av vertsleverandøren, f.eks. mail.javatpoint.com , må du autentisere brukernavnet og passordet. Javax.mail.PasswordAuthentication-klassen brukes til å autentisere passordet.
Hvis du sender e-posten med JavaMail API, last inn de to jar-filene:
mail.jar
activation.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();} } } 
last ned dette eksemplet for å sende e-post

Som du kan se i eksemplet ovenfor, må bruker-ID og passord være autentisert. Som dette programmet illustrerer, kan du enkelt sende e-post. Endre brukernavn og passord tilsvarende. La oss se hvordan du kjører det igjen med enkel teknikk:

Last inn jar-filenc:> set classpath=mail.jar;activation.jar;.;
kompiler kildefilenc:> javac SendMailBySite.java
drevet avc:> java SendMailBySite