С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95

JavaMail API

29.09.2018, 04:32. Показов 4142. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

В почтовой программе мы можем указать несколько получателей писем (не скрытая копия, не копия).

1. Как в Java организовать отправку на несколько адресов так, чтобы все получатели видели кому отправлялось письмо?
2. Как прикрепить несколько файлов в аттач?
3. Как ставить уведомление о доставке и уведомление о прочтении?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.09.2018, 04:32
Ответы с готовыми решениями:

JavaMail API и русский язык.
Помогите мне, плс Как встроить ХТМЛ код в Яву, чтобы русские символы на вопросики не заменялись? Просто русский текст передать - без...

JavaMail
как правильно установить JavaMail?

JavaMail , установка
Не знаю, в тот ли раздел пишу, извините если нет) Вот решил сделать программку простенькую связанную с мейлом, но она оказалась совсем...

16
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
29.09.2018, 10:10
vskh, а ты не перепутал ветки форума Java и JavaScript разные языки))
0
 Аватар для snajper_ro
116 / 101 / 52
Регистрация: 14.09.2011
Сообщений: 696
Записей в блоге: 1
29.09.2018, 10:32
изучайте протоколы pop 3 ,SMTP ,
0
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95
29.09.2018, 17:14  [ТС]
не перепутал

Добавлено через 43 секунды
зачем изучать POP3 для отправки сообщения?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
29.09.2018, 17:21
Если лень документацию читать, то первые ж ссылки в гугле смотрите.Например, Send Mail to multiple Recipients in java
1
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95
29.09.2018, 17:56  [ТС]
Добрый день.

Спасибо за ссылку, я ее сам не нашел. Документацию читать не лень, если Вам известна ссылка с исчерпывающей документацией по JavaMail API (желательно, но не обязательно, на русском языке), прошу поделиться.

По указанной Вами ссылке приводится пример:

Java
1
String to = "med@joe.com, maz@frank.com, jezz@jam.com";
А если надо указать адреса в формате "Вася Пупкин vas@jam.com", "Василиса Пупкина vasiliska@jam.com", то следует писать:

Java
1
InternetAddress[] address = { new InternetAddress("vas@jam.com", "Вася Пупкин"), new InternetAddress("vasiliska@jam.com", "Василиса Пупкина") };
Так?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
29.09.2018, 18:04
Цитата Сообщение от vskh Посмотреть сообщение
"Вася Пупкин vas@jam.com"
Это не Адрес электронной почты.
Тут и документация и FAQ.
1
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95
01.10.2018, 22:52  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.util.Properties;
import javax.mail.Message;
//import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.internet.*;
import javax.mail.*;
import javax.swing.JOptionPane;
 
public class Mailer{
 
    public static void main(String[] args){
 
        Properties p = new Properties();
 
        p.put("mail.smtp.host", "smtp.yandex.ru");
        p.put("mail.smtp.socketFactory.port", 465);
        p.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSL.SocketFactory");
        p.put("mail.smtp.port", 465);
 
        Session s = Session.getDefaultInstance(p,
 
                new javax.mail.Authenticator(){
 
            protected PasswordAuthentication getPasswordAuthenrication(){
                return new PasswordAuthentication("ЛОГИН@yandex.ru", "ПАРОЛЬ");}});
 
 
 
 
        try{
 
            Message mess = new MimeMessage(s);
            mess.setFrom(new InternetAddress("ЛОГИН@ya.ru"));
            mess.setRecipients(Message.RecipientType.TO, InternetAddress.parse("ЛОГИН@ya.ru"));
            mess.setSubject("TEST 01-10-2018");
            mess.setText(" ...проверка связи... ");
 
            Transport.send(mess);
 
            JOptionPane.showMessageDialog(null, "Отправлено");
 
        }catch(Exception ex){
            JOptionPane.showMessageDialog(null, "Что-то пошло не так" + ex);
        }
    }
 
}
Добрый день.

Программа не работает. Ошибку не выдает, фразу "Что-то пошло не так" + код ошибки не выдает, "Отправлено" - не выдает.

Тестовое письмо не пришло. Программа написана для отправки сообщения через stmp сервер яндекса.

В строчках
Java
1
2
      p.put("mail.smtp.socketFactory.port", 465);
                p.put("mail.smtp.port", 465);
465 писал как в кавычках, так и без кавычек.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
02.10.2018, 06:37
vskh, как нельзя кстати https://www.cyberforum.ru/java/thread2250765.html
0
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95
03.10.2018, 15:31  [ТС]
Добрый день.

Написал программу для отправки почты с почтового ящика на майл.ру. Почитал документацию, но так и не понял, почему если вместо строчки
Java
1
message.setFrom(new InternetAddress("ЛОГИН_НА_МАЙЛ_РУ@mail.ru"));
я пишу
Java
1
message.setFrom(new InternetAddress("ЛОГИН_НА_МАЙЛ_РУ@mail.ru", "fromName", "UTF-8"));
то получается ошибка. Цель - получатель письма должен видеть не "голый" e-mail отправителя, а его имя.

Полный код программы:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
 
 
public class TestT {
 
    public static void main(String[] args) {
 
final String username = "ЛОГИН_НА_МАЙЛ_РУ@mail.ru";
        final String password = "ПАРОЛЬ";
 
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.mail.ru");
        props.put("mail.smtp.port", "587");
 
        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });
 
        try {
 
            Message message = new MimeMessage(session);
            
            //message.setFrom(new InternetAddress("ЛОГИН_НА_МАЙЛ_РУ@mail.ru", "fromName", "UTF-8"));;
            message.setFrom(new InternetAddress("ЛОГИН_НА_МАЙЛ_РУ@mail.ru"));
            
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("АДРЕСАТ@yandex.ru"));
            message.setSubject("Testing Subject");
            message.setText("ТЕКСТ ПИСЬМА");
 
            Transport.send(message);
 
            System.out.println("Done");
 
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
03.10.2018, 15:35
vskh, а текст ошибки нам самостоятельно угадывать?
0
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95
03.10.2018, 16:26  [ТС]
Ошибка Unhandled exception: java.io.UnsupportedEncodingException

На всякий случай во вложении скриншот.
Миниатюры
JavaMail API  
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
03.10.2018, 16:32
utf 8 charset doesn't work with javax mail
0
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95
03.10.2018, 16:48  [ТС]
Вы хотите сказать, что UTF8 надо писать в теме?
setSubject(subject, "utf-8");

Хорошо, тогда используем другой конструктор и определим только e-mail и имя.

Java
1
message.setFrom(new InternetAddress("ЛОГИН_НА_МАЙЛ_РУ@mail.ru", "fromName"
Миниатюры
JavaMail API  
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
03.10.2018, 16:53
Лучший ответ Сообщение было отмечено vskh как решение

Решение

vskh, вот так попробуйте передавать "Personal Name <user@host.domain>"
2
1 / 2 / 0
Регистрация: 20.02.2017
Сообщений: 95
03.10.2018, 17:12  [ТС]
Спасибо, заработало!!!

Но я озадачен.
1. Существует конструктор InternetAddress("АДРЕС", "ИМЯ");
2. При написании программы с вышеуказанным конструктором intellij idea сама подсказывает, что на первом месте идет адрес, а на втором имя. Могу скриншот сделать.

Проблема решена, но я не понял, почему нельзя использовать конструктор указанный в официальной документации?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
03.10.2018, 17:19
Так на скрине показано что "unhandled exception". Поместите или в блок try или же throws с исключением в сигнатуру метода чтоб пробросить выше. IDEA по Alt+Enter должна предлагать эти варианты.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2018, 17:19
Помогаю со студенческими работами здесь

JavaMail - доступ к почтовым серверам через веб-прокси-сервер
Есть небольшой класс по отправке почтовых сообщений package com.company; import javax.mail.*; import...

Javamail multipart
Всем доброго времени суток. Подскажите, пожалуйста, если в письме есть прикрепленные письма, можно их как-то достать? Если да, то в...

Нужна консультация по javaMail
Нужна консультация по javaMail 1. Немогу разобраться где прописать свой файл MyMail.properties, и прописать путь к нему. 2. Можно ли...

Не могу поставить JavaMail
Люди!!! помогите кто может! Не могу поставить JavaMail. Скачал пакет с http://java.sun.com/products/javamail Делаю как сказано в...

Приложение с использованием JavaMail
Всем доброго времени суток.Хочу попробовать написать почтовую программу,по аналогии с TheBat.Только TheBat получает данные с почты,а моя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru