Email yuborish (SMTP)
Daraja: O'rta
Java'dan email yuborish uchun Jakarta Mail (eski nomi JavaMail) ishlatiladi. SMTP server manzili, porti va autentifikatsiya ma'lumotlari `Properties` orqali beriladi. Gmail uchun oddiy parol emas, App Password kerak. Parolni hech qachon kodga yozma — `.env` yoki `config.properties`da tut.
Tushuntirish
Java'dan email yuborish uchun Jakarta Mail (eski nomi JavaMail) ishlatiladi. SMTP server manzili, porti va autentifikatsiya ma'lumotlari `Properties` orqali beriladi. Gmail uchun oddiy parol emas, App Password kerak. Parolni hech qachon kodga yozma — `.env` yoki `config.properties`da tut.
Kod misoli
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(props, new Authenticator() {
@Override protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USER, APP_PASSWORD);
}
});
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(USER));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("kimdir@mail.com"));
msg.setSubject("Java Kundaligi");
msg.setContent("<h2>Salom!</h2>", "text/html; charset=UTF-8");
Transport.send(msg);
Keng tarqalgan xatolar
- Gmail'da oddiy parol ishlatish — AuthenticationFailedException. App Password kerak.
- Kirill/o'zbek harflari buzilishi — charset=UTF-8 ko'rsatilmagan.
Mashqlar
- O'zingga HTML formatda test xat yubor.
- Parolni config faylga chiqarib, koddan olib tashla.
Teglar: email, smtp, tarmoq