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

JavaMail API

29.09.2018, 04:32. Показов 4193. Ответов 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__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,483
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
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru