Sende e-post med Java

1. Oversikt

I denne raske opplæringen skal vi se på å sende en e-post med og uten vedlegg - ved hjelp av Java-postbiblioteket.

2. Prosjektoppsett og avhengighet

For denne artikkelen bruker vi et enkelt Maven-basert prosjekt med avhengighet av Java-postbiblioteket:

 javax.mail mail 1.5.0-b01 

Den siste versjonen finner du her.

3. Sende en vanlig tekst og en HTML-e-post

Først må vi konfigurere biblioteket med legitimasjonen til e-posttjenesteleverandøren. Deretter lager vi en Økt som vil bli brukt til å konstruere meldingen vår for sending.

Konfigurasjonen er via en Java Eiendommer gjenstand:

Egenskaper prop = nye egenskaper (); prop.put ("mail.smtp.auth", sant); prop.put ("mail.smtp.starttls.enable", "true"); prop.put ("mail.smtp.host", "smtp.mailtrap.io"); prop.put ("mail.smtp.port", "25"); prop.put ("mail.smtp.ssl.trust", "smtp.mailtrap.io");

I egenskapskonfigurasjonen ovenfor konfigurerte vi e-postverten som Mailtrap og bruker også porten som tilbys av tjenesten.

La oss nå gå videre ved å lage en økt med vårt brukernavn og passord:

Session session = Session.getInstance (prop, new Authenticator () {@Override protected PasswordAuthentication getPasswordAuthentication () {return new PasswordAuthentication (brukernavn, passord);}});

Brukernavnet og passordet er gitt av e-postleverandøren sammen med verts- og portparametere.

Nå som vi har en post Økt objekt, la oss lage et MimeBeskjed for sending:

Meldingsmelding = ny MimeMessage (økt); message.setFrom (new InternetAddress ("[email protected]")); message.setRecipients (Message.RecipientType.TO, InternetAddress.parse ("[email protected]")); message.setSubject ("Mail Subject"); String msg = "Dette er min første e-postmelding som bruker JavaMailer"; MimeBodyPart mimeBodyPart = ny MimeBodyPart (); mimeBodyPart.setContent (msg, "text / html"); Flerdelt flerdelt = nytt MimeMultipart (); multipart.addBodyPart (mimeBodyPart); message.setContent (flerdelt); Transport.send (melding);

I kodebiten ovenfor opprettet vi først en beskjed eksempel med de nødvendige egenskapene - til, fra og emne. Etterfulgt av en mimeBodyPartsom har en koding av tekst / html, siden meldingen vår er utformet i HTML.

Den neste tingen vi gjorde er å lage en forekomst av MimeMultipart objekt som vi kan bruke til å pakke inn mimeBodyPart vi skapte.

Til slutt setter vi flerdelt objekt som innholdet i vårt beskjed og bruk sende()av Transportere protesterer mot å sende posten.

Så, vi kan si at mimeBodyParter inneholdt i flerdelt som er inneholdt i beskjed. Derfor, a flerdelt kan inneholde mer enn en mimeBodyPart.

Dette kommer til å være fokus for neste avsnitt.

4. Sende e-post med vedlegg

For å sende et vedlegg trenger vi bare å lage et annet MimeBodyPartog fest filen (e) til den:

MimeBodyPart attachmentBodyPart = ny MimeBodyPart (); attachmentBodyPart.attachFile (ny fil ("sti / til / fil"));

Vi kan deretter legge den nye kroppsdelen til MimeMultipartobjekt vi opprettet tidligere:

multipart.addBodyPart (vedleggBodyPart);

Det er alt vi trenger å gjøre.

Nok en gang setter vi inn flerdelt eksempel som innholdet i beskjed objekt og til slutt bruker vi sende() for å sende posten.

5. Konklusjon

Avslutningsvis har vi sett hvordan du bruker det opprinnelige Java-postbiblioteket til å sende e-post selv med vedlegg.

Som alltid er den komplette kildekoden tilgjengelig på Github.


$config[zx-auto] not found$config[zx-overlay] not found