logo

Skickar e-post i Java

  1. Skicka e-post med JavaMail API
  2. Steg för att skicka e-post med JavaMail API
    1. Hämta sessionsobjektet
    2. Skriv meddelandet
    3. skicka meddelandet
  3. Enkelt exempel på att skicka e-post med JavaMail API
  4. Exempel på att skicka e-post med JavaMail API via SMTP-servern som tillhandahålls av värdleverantören

Det finns olika sätt att skicka e-post med JavaMail API. För detta ändamål måste du ha en SMTP-server som ansvarar för att skicka e-post.

Du kan använda någon av följande tekniker för att få SMTP-servern:

  • Installera och använd valfri SMTP-server som Postcast-server, Apache James-server, cmail-server etc. (eller)
  • Använd SMTP-servern som tillhandahålls av värdleverantören t.ex. min SMTP-server är mail.javatpoint.com (eller)
  • Använd SMTP-servern som tillhandahålls av andra företag t.ex. gmail osv.

Här kommer vi att lära oss ovan tre metoder för att skicka e-post med javamail API. Men vi bör lära oss de grundläggande stegen för att skicka e-post från Java-applikationen.


Steg för att skicka e-post med JavaMail API

Det finns tre steg för att skicka e-post med JavaMail. De är följande:

    Hämta sessionsobjektetsom lagrar all information om värden som värdnamn, användarnamn, lösenord etc.komponera meddelandet skicka meddelandet


1) Hämta sessionsobjektet

De javax.mail.Session klass tillhandahåller två metoder för att hämta objektet för sessionen, metoden Session.getDefaultInstance() och metoden Session.getInstance(). Du kan använda vilken metod som helst för att hämta sessionsobjektet.

Metod för session klass

Nej.MetodBeskrivning
1offentlig statisk session getDefaultInstance(Properties rekvisita)returnerar standardsessionen.
2offentlig statisk session getDefaultInstance (Properties rekvisita, Authenticator auth)returnerar standardsessionen.
3offentlig statisk session getInstance(Properties rekvisita)returnerar den nya sessionen.
4public static Session getInstance (Properties rekvisita, Authenticator auth)returnerar den nya sessionen.

Exempel på metoden getDefaultInstance().

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

Exempel på metoden getInstance().

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

2) Skriv meddelandet

Klassen javax.mail.Message tillhandahåller metoder för att komponera meddelandet. Men det är en abstrakt klass så dess underklass javax.mail.internet.MimeMessage används mest.
För att skapa meddelandet måste du skicka sessionsobjekt i MimeMessage-klasskonstruktorn. Till exempel:
 MimeMessage message=new MimeMessage(session); 
Nu har meddelandeobjekt skapats men för att lagra information i detta objekt erbjuder MimeMessage-klassen många metoder. Låt oss se metoder som tillhandahålls av MimeMessage-klassen:

Vanligt använda metoder för MimeMessage-klassen

Nej.MetodBeskrivning
1public void setFrom(Adressadress)används för att ställa in från-huvudfältet.
2public void addRecipient(Message.RecipientType-typ, Adressadress)används för att lägga till den givna adressen till mottagartypen.
3public void addRecipients(Message.RecipientType-typ, Address[]-adresser)används för att lägga till de givna adresserna till mottagartypen.
4public void setSubject(Strängämne)används för att ställa in ämnesrubrikfältet.
5public void setText(Sträng textmeddelande)används för att ställa in texten som meddelandeinnehåll med text/vanlig MIME-typ.
6public void setContent(Object msg, String contentType)används för att ställa in innehållet som meddelandeinnehåll med en given MIME-typ.

Exempel för att skriva meddelandet:

 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) Skicka meddelandet

Klassen javax.mail.Transport tillhandahåller en metod för att skicka meddelandet.

Vanligt använda metoder av transportklass

Nej.MetodBeskrivning
1offentlig statisk void skicka (meddelande)används skicka meddelandet.
2offentlig statisk void skicka (meddelandemeddelande, adress[] adress)används skicka meddelandet till de angivna adresserna.

Exempel för att skicka meddelandet:

 Transport.send(message); 

Enkelt exempel på att skicka e-post i Java

ladda ner dessa jar-filer eller gå till Oracle-webbplatsen för att ladda ner den senaste versionen.
I det här exemplet ska vi lära oss hur man skickar e-post via SMTP-server installerad på maskinen t.ex. Postcast-server, Apache James-server, Cmail-server etc. Om du vill skicka e-post genom att använda din SMTP-server som tillhandahålls av värdleverantören, se exemplet efter detta.
För att skicka e-postmeddelandet med JavaMail API måste du ladda de två jar-filerna:
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();} } } 
ladda ner det här exemplet för att skicka e-post

I det här exemplet ska vi lära oss hur man skickar e-post via SMTP-server installerad på maskinen t.ex. Postcast-server, Apache James-server, Cmail-server etc. Om du vill skicka e-post genom att använda din SMTP-server som tillhandahålls av värdleverantören, se exemplet efter detta.

sträng som en array

För att köra det här exemplet måste du ladda två jar-filer. Det finns fyra sätt att ladda jar-filen. En av vägarna är ange klassväg. Låt oss se hur du kör det här exemplet:

Ladda jar-filenc:> set classpath=mail.jar;activation.jar;.;
kompilera källfilenc:> javac SendEmail.java
drivs avc:> java Skicka e-post

Exempel på att skicka e-post i Java via SMTP-server som tillhandahålls av värdleverantören

ladda ner dessa jar-filer eller gå till Oracle-webbplatsen för att ladda ner den senaste versionen.
Om du använder SMTP-servern som tillhandahålls av värdleverantören, t.ex. mail.javatpoint.com måste du autentisera användarnamnet och lösenordet. Klassen javax.mail.PasswordAuthentication används för att autentisera lösenordet.
Om du skickar e-postmeddelandet med JavaMail API, ladda de två jar-filerna:
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();} } } 
ladda ner det här exemplet för att skicka e-post

Som du kan se i exemplet ovan måste användar-id och lösenord autentiseras. Som det här programmet visar kan du enkelt skicka e-post. Ändra användarnamn och lösenord i enlighet med detta. Låt oss se hur du kör det igen med enkel teknik:

Ladda jar-filenc:> set classpath=mail.jar;activation.jar;.;
kompilera källfilenc:> javac SendMailBySite.java
drivs avc:> java SendMailBySite