3-laboratoriya ishi - bet 2

|
3-laboratoriya ishi
|
bet | 2/3 | Sana | 11.01.2024 | Hajmi | 453,52 Kb. | | #134656 |
Bog'liq 3-LABInitialContext ctx = new InitialContext();
Session session = (Session) ctx.lookup("usersMailSession");
Ikkinchi usul dasturlashga asoslangan java.util.Propertiesdan foydalanib Session obyekti yaratiladi.
Session klassi konstruktori private hisoblanadi. Session klassi ikkita metodni ta’minlaydi:
getDefaultInstance():getDefaultInstance() metodidan goydalanib sukut bo‘yicha Session obyekti chaqiriladi.
public static Session getDefaultInstance(Properties props)
public static Session getDefaultInstance(Properties props,Authenticator auth)
getInstance(): getInstance() metodidan foydalanib yangi Session obyekti chaqiriladi.
public static Session getInstance(Properties props)
public static Session getInstance(Properties props,Authenticator auth) Message klassi
Session obyekti yaratildi endi jo‘natiladigan xabarni yaratishga o‘tamiz.
Xabar turi
Message abstrakt klass hisoblanadi, shuning uchun uning javax.mail.internet.MimeMessage klassi keng foydalaniladi.
Xabarni yaratish uchun MimeMessage konstruktoridan foydalaniladi. Misol uchun:
MimeMessage message=new MimeMessage(session);
Xabar yaratildi. Endi xabarga ma’lumotlarni saqlashimiz lozim. Buning uchun message.setContent() yoki mimeMessage.setText() kabi metodlardan foydalanish mumkin.
Keng foydalaniladigan MimeMessage klassining metodlari
7.2- jadval
MimeMessage klassining metodlari
Metod
|
Tavsifi
|
public void setFrom(Address address)
|
Jo‘natuvchining manzilini
o‘rnatish uchun foydalaniladi
|
public void addRecipients
(Message.RecipientType type, String addresses)
|
Qabul qiluvchilar turi va manzillarini aniqlaydi.
|
public void setSubject(String subject)
|
Mavzuni belgilash uchun
|
|
foydalaniladi.
|
public void setText(String textmessage
|
Xabar matnini belgilash uchun
foydalaniladi.
|
Address klassi.
Session va Message obyektlariga egamiz, Address obyektidan foydalanib xabarga manzillarni qo‘shih lozim.
Address abstrakt klass hisoblanadi. Shuning uchun javax.mail.internet.InternetAddress klassi keng foydalaniladi.
Elektron pochta adresini qo‘yish bilan Address yaratiladi:
Address address = new InternetAddress("talaba@gmail.com");
Address obyektinin yaratishnin yana bitta yo‘li:
Address address = new InternetAddress("talaba@gmail.com", asror); Authenticator klassi.
Authenticator klassi tarmoq bog‘lanishi uchun autentifikatsiya qilish obyektini namoyon etadi.
Odatda, ma’lumot uchun foydalanuvchidan so‘rovni amalga oshiradi.
Authenticator abstrakt klassi hisoblanadi. dan Login va parolni kiritish orqali PasswordAuthentication klassi konstruktoridan foydalanish mumkin.
Session obyekti yaratilayotganda Authenticatorni ro‘yxatdan o‘tqazish lozim.
Quyida Authenticatorga misol keltirilgan:
Properties props = new Properties();
PasswordAuthentication auth = new PasswordAuthentication("talaba", "parol")
Session session = Session.getDefaultInstance(props, auth); Transport klassi
Transport klassi xabarni ko‘chirish mexanizmida foydalaniladi. Odatda ushbu klass xabarni jo‘natishda SMTP protokolidan foydalaniladi.
static send() metodidan foydalanib xabarni jo‘natish mumkin:
Transport.send(message);
ikkinchi yo‘li login va parol kiritish orqali sessiyani ochish, xabarni jo‘natish va bog‘lanishni yopish:
message.saveChanges(); // send() o‘rnida ishlatiladi
//session uchun transportni belgilash
Transport transport = session.getTransport("smtp");
//bog‘lanish
transport.connect(host, username, password);
//zarur bo‘lsa takrorlash
transport.sendMessage(message, message.getAllRecipients());
//bajarildi, bog‘lanishni yopish transport.close();
Store klassi
Xabarlarni saqlash va o‘qish uchun foydalaniladigan klass. Store klassi Service klassi yordamida kengaytiriladi.
Store store = session.getStore("pop3"); store.connect(host, username, password); Folder klassi
Folder klassi elektron pochta xabarlari uchun papkalarni namoyon etadi. Papkalar o‘z o‘rnida papkaostilarni va xabarlarni o‘z ichiga olishi mumkin. Storega bog‘langandan so‘ng Folderga murojaat qilish mumkin.
Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); Message message[] = folder.getMessages();
Folder obyektining getFolder(String name) metodi papkaosti nomini qaytaradi. Quyidagi rasmda Store va Folder bog‘lanishini ko‘rishimiz mumkin.
|
| |