Cum se trimite o scrisoare dintr-o aplicație java (cu un exemplu)

Cum se trimite o scrisoare dintr-o aplicație Java (cu un exemplu)

Cum se trimite un e-mail de la programul Java cu un exemplu

Exemplu de cod Java pentru trimiterea unui e-mail

Cum se trimite o scrisoare dintr-o aplicație java (cu un exemplu)







Pentru a trimite o scrisoare dintr-un program Java, veți avea nevoie de Java Mail API și Java Activation Framework (JAF); dacă mai exact, veți avea nevoie de mail-1.4.5.jar. smtp-1.4.4.jar. și activarea-1.1.jar. Trebuie să descărcați aceste fișiere JAR și să le includeți în Classpath pentru a rula acest program. Alternativ, puteți utiliza Maven pentru a gestiona dependențele și pentru a activa toate dependențele de acolo. Odată ce aveți toate aceste fișiere JAR, urmați pașii de mai jos pentru a crea și a trimite un e-mail utilizând Java.

  1. Creați un obiect de sesiune apelând Session.getDefaultInstance (proprietăți). unde proprietățile - conține toate proprietățile importante, de exemplu, numele gazdei serverului SMTP.
  2. Creați un obiect MimeMessage prin transmiterea unui obiect de sesiune. obținută în etapa anterioară. Avem un set de proprietăți diferite în acest obiect, cum ar fi destinatarul literei, subiectul, corpul mesajului, atașamentele etc.
  3. Utilizați javax.mail.Transport pentru a trimite mesajul apelând metoda statică de trimitere (e-mail). unde e-mailul poate fi un obiect MimeMessage.

Numărul de proprietăți pe care le transmiteți pentru a crea un obiect Session diferă în funcție de tipul de server SMTP, de exemplu, dacă utilizați un server SMTP. care nu are nevoie de nici o autentificare, puteți crea un obiect de sesiune cu o singură proprietate, de exemplu, smtp.mail.host, și nu trebuie să specificați un port, deoarece acesta este portul implicit 25. Pe de altă parte, dacă vă conectați la un server SMTP. care necesită TLS sau SSL de autentificare, de exemplu, GMail SMTP gazdă, atunci ai nevoie pentru a oferi un pic mai multe proprietăți, de exemplu, mail.smtp.port = 547 pentru TLS și mail.smtp.port = 457 pentru SSL.

Acesta este un program Java complet care se conectează la un server SMTP standard fără autentificare și trimite un mesaj text utilizând Java Mail API.

La ieșire:
Puteți compila și rula acest program pentru a trimite un e-mail simplu din programul Java:








S-a trimis cu succes e-mail ...

Puteți adăuga persoane în câmpul TO folosind Message.RecipientType.TO. în câmpul CC utilizând Message.RecipientType.CC. și în BCC - Message.RecipientType.BCC.

Erori și excepții


Atunci când mai multe Java programatori întâi începe să scrie un program pentru trimiterea de e-mail, ei dau peste o greșeală, pentru că cele mai multe dintre ele cred că mail.jar și activation.jar va fi suficient pentru a trimite o scrisoare de aplicații bazate pe Java, nu este așa, mai ales dacă trimiteți un e-mail prin intermediul unui server SMTP local pe Linux. Dacă executați acest program numai cu mail.jar și activation.jar în CLASSPATH. este foarte probabil să primiți această eroare.

Excepția 1:


Deși soluția la această eroare este foarte simplă, aceasta vă poate deruta. java.net.ConnectException: conexiunea refuzată: conectarea se blochează, de obicei, atunci când serverul nu funcționează sau portul greșit pe care îl conectați nu funcționează. Soluție: cu excepția mail-1.4.5.jar, de asemenea, aveți nevoie de smtp-1.4.4.jar și activation-1.1.jar.

Excepția 2:

Aceasta este o altă eroare numită NoClassDefFoundError. care de obicei se referă la fișierul JAR lipsă din Classpath

Soluție: Am reușit să-mi rezolv problema, datorită unei clasificări incorecte. În ciuda faptului că am avut toate cele trei JAR-uri necesare, fișierul de clasă Java pentru program într-un singur director și am rulat programul de acolo, Java nu a putut înțelege. Am încercat să introduc următoarele comenzi și programul a funcționat bine:


S-a trimis cu succes e-mail ...

Rețineți că directorul curent este marcat cu un punct la sfârșitul argumentului Classpath. De când am rulat programul pe Linux, am folosit un colon (:) în loc de punct și virgulă (;) (ca în Windows).

Este vorba despre modul de trimitere a e-mailurilor dintr-o aplicație Java utilizând un API de e-mail. S-ar putea să credeți că acest lucru este foarte simplu, deoarece nu aveți nevoie de mai mult de trei fișiere JAR. Mult mai ușor dacă utilizați Gradle sau Maven pentru a gestiona dependențele. În următorul tutorial, vom vedea exemple mai complexe de Java Mail API pentru a trimite e-mailuri cu fișiere atașate, imagine și mesaje frumos formatate pentru a trimite rapoarte și tabele.

O zi bună pentru toată lumea. Pentru a trimite scrisori doriți să utilizați Google opțiuni de box corporative pentru a lucra cu ei (porturi, SSL, TLS), după cum am înțeles, ar trebui să fie prescrise în «properties.setProperty (tasta String, valoarea String);». Vă rog să ne spuneți ce arată "Cheia string" pentru acești parametri (sintaxa) sau unde puteți vedea lista completă a parametrilor posibili. Google pe java.util.Properties și javax.mail.Session, însă lista parametrilor nu a fost găsită niciodată. Mulțumită în avans.

S-a găsit! Poate cineva va avea nevoie de:

("Mail.smtp.host", "smtp.gmail.com");
("Mail.smtp.socketFactory.port", "465");
("Mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
("Mail.smtp.auth", "adevărat")
("Mail.smtp.port", "465")

("Mail.smtp.auth", "adevărat")
("Mail.smtp.starttls.enable", "adevărat")
("Mail.smtp.host", "smtp.gmail.com")
("Mail.smtp.port", "587")

Bună ziua, ajutor, nu pot adăuga fișiere cu jar. Se descarcă-le, arunca într-un dosar sunt adăugate la variabila classpath la calea absolută + nume de fișier, încerc să importe clasele, și încă nu pot fi văzute, ceea ce poate fi o problemă. Am încercat să le adaug pe fișierul File \ Settings \ Plugins \ Install din disc, dă o eroare "nu reușesc să încarce descriptorul de plugin din fișier"

Mulțumesc. Traducere bună!
PS a citit articolul, a fost colectat exemplul de lucru cu serverul Yandex, totul sa terminat.







Trimiteți-le prietenilor: