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.