- Skicka e-post med JavaMail API
- Steg för att skicka e-post med JavaMail API
- Hämta sessionsobjektet
- Skriv meddelandet
- skicka meddelandet
- Enkelt exempel på att skicka e-post med JavaMail API
- 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 sessionsobjektet | som 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. | Metod | Beskrivning |
1 | offentlig statisk session getDefaultInstance(Properties rekvisita) | returnerar standardsessionen. |
2 | offentlig statisk session getDefaultInstance (Properties rekvisita, Authenticator auth) | returnerar standardsessionen. |
3 | offentlig statisk session getInstance(Properties rekvisita) | returnerar den nya sessionen. |
4 | public 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. | Metod | Beskrivning |
1 | public void setFrom(Adressadress) | används för att ställa in från-huvudfältet. |
2 | public void addRecipient(Message.RecipientType-typ, Adressadress) | används för att lägga till den givna adressen till mottagartypen. |
3 | public void addRecipients(Message.RecipientType-typ, Address[]-adresser) | används för att lägga till de givna adresserna till mottagartypen. |
4 | public void setSubject(Strängämne) | används för att ställa in ämnesrubrikfältet. |
5 | public void setText(Sträng textmeddelande) | används för att ställa in texten som meddelandeinnehåll med text/vanlig MIME-typ. |
6 | public 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. | Metod | Beskrivning |
1 | offentlig statisk void skicka (meddelande) | används skicka meddelandet. |
2 | offentlig 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
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:ladda ner dessa jar-filer eller gå till Oracle-webbplatsen för att ladda ner den senaste versionen. |
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-postI 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-filen | c:> set classpath=mail.jar;activation.jar;.; |
kompilera källfilen | c:> javac SendEmail.java |
drivs av | c:> java Skicka e-post |
Exempel på att skicka e-post i Java via SMTP-server som tillhandahålls av värdleverantören
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:ladda ner dessa jar-filer eller gå till Oracle-webbplatsen för att ladda ner den senaste versionen. |
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-postSom 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-filen | c:> set classpath=mail.jar;activation.jar;.; |
kompilera källfilen | c:> javac SendMailBySite.java |
drivs av | c:> java SendMailBySite |