Documente Academic
Documente Profesional
Documente Cultură
Chișinău – 2020
Sarcina lucrarii
Să se creeze un program client de poștă electronică(MUA – Mail User Agent) apt să
trimită și să citească mesajele prin intermediul unui cont de poștă electronică.
Mersul lucrarii
Trimiterea mesajului
Pentru a trimite mesaje am folosit protocolul SMTP care permite aplicatiilor sa
transmita emailuri prin internet.
Pentru aceasta in primul rand avem nevoie de a mentiona adresa serverului SMTP si
sa obtinem proprietatile sistemului
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(myEmail));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
message.setSubject(subject);
message.setText(textBody);
return message;
}
catch (Exception e) {
Logger.getLogger(Gmail.class.getName()).log(Level.SEVERE, null, e);
}
return null;
}
si respectiv intr-un alt thread prin intermediul clasei Transport trimitem mesajul catre
destinatie.
final Message message = prepareMessage();
Thread sendMessage = new Thread(new Runnable() {
@Override
public void run() {
try {
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
});
sendMessage.start();
System.out.println("Message sent successfully");
Primirea mesajelor
Pentru a primi mesaje am folosit protocolul IMAP care permite accesul la mesaje din
foldere de e-mail de pe un server.
Am creat un model pentru mesajele care trebuie primate
public class MessageModel implements Serializable {
Apoi am creat metoda ReciveMessages care in cele din urma ne va returna lista
noastra cu mesaje.
In aceasta metoda am declarant adresa serverului si provider-ul
String host = "imap.gmail.com";
String provider = "imaps";
messageModels.add(messageModel);
Pentru trimiterea si primirea mesajlor am creat cate o clasa care extinde superclasa
AsyncTask pentru a rula toate procesele in background ruland un progress bar.
Codul sursa prezentat in Anexa A.
A treia diferenta este ca IMAP nu ridica probleme la folosirea filtrelor iar cu POP3
mesajele mutate in alte foldere nu vor putea fi vizualizate.
Concluzie
https://github.com/danieliepp/SendAndReciveMail
Rezultatul final
Без
имени_1440p.mp4