8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
1 | |
Отправка электронной почты из приложения (без почтового клиента)12.12.2019, 05:27. Показов 8783. Ответов 17
Сразу уточню, что я нуб.
Хочу передать себе данные анкеты из приложения. Кроме email ничего удобного не вижу. Перечитал кучу статей по отправке электронной почты, но они все устарели и много не сходится. Понял, что нужна библиотека "javax.mail.jar". Её скачал. Как подключается она в Android Studio 3.5? "File - Project structure - New module (плюс) - Import .JAR/.AAR Package" - это верные действия? Далее как ей воспользоваться? Прошу объяснение для чайника, ибо статьи я читал и пробовал самостоятельно. Ничего не вышло. PS: неужели для Android нет встроенных средств отправки электронной почты? Это так странно...
0
|
12.12.2019, 05:27 | |
Ответы с готовыми решениями:
17
Отправка из приложения сообщений электронной почты с вложением Создание почтового клиента и отправка почты и вложений (одного или несколько) Отправка писем без почтового клиента (не отправляет) Отправка электронной почты в VB 6.0 |
4 / 3 / 1
Регистрация: 27.10.2010
Сообщений: 67
|
|||||||||||||||||||||
12.12.2019, 07:37 | 2 | ||||||||||||||||||||
Сообщение было отмечено moverast как решение
Решение
Добрый день, вот мой работающий проект для отправки на почту mail :
Activity_main.xml
Для этого откройте структуру проекта, в каталоге app создайте каталог libs и в него загрузите файлы после этого в gradle пропишите в разделе dependencies следующие строки : implementation files('libs\\activation.jar') implementation files('libs\\additionnal.jar') implementation files('libs\\mail.jar') Если самостоятельно не найдете файлы то пиши в личку скину
1
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
||||||
12.12.2019, 11:00 [ТС] | 3 | |||||
проект запустился. Это уже хорошо. Но почта не ходит.
Ошибка: Кликните здесь для просмотра всего текста
W/System.err: javax.mail.MessagingException: Could not connect to SMTP host: smtp.yandex.ru, port: 465;
nested exception is: java.net.SocketException: socket failed: EPERM (Operation not permitted) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412) at javax.mail.Service.connect(Service.java:310) at javax.mail.Service.connect(Service.java:169) at javax.mail.Service.connect(Service.java:118) at javax.mail.Transport.send0(Transport.java:188) at javax.mail.Transport.send(Transport.java:118) at ru.moversoft.emailtest.SendMail.doInBackground(SendMail.java:98) at ru.moversoft.emailtest.SendMail.doInBackground(SendMail.java:23) at android.os.AsyncTask$3.call(AsyncTask.java:378) at java.util.concurrent.FutureTask.run(FutureTask.java:266) W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) Caused by: java.net.SocketException: socket failed: EPERM (Operation not permitted) at java.net.Socket.createImpl(Socket.java:492) at java.net.Socket.connect(Socket.java:619) at java.net.Socket.connect(Socket.java:570) W/System.err: at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233) W/System.err: at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359) Мои Properties:
Пробовал убирать mail.debug Прописал <uses-permission android:name="android.permission.INTERNET" /> Не работает. ЧЯДНТ?
0
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
13.12.2019, 06:28 [ТС] | 4 |
Всё работает! Добавлю пару мелочей:
1. Нужно обязательно <uses-permission android:name="android.permission.INTERNET" /> 2. props.put("mail.debug", "true"); можно убрать 3. implementation files('libs\\activation.jar') можно не прописывать. все файлы из libs автоматически подцепляются.
0
|
0 / 0 / 0
Регистрация: 14.04.2020
Сообщений: 2
|
|
11.07.2020, 16:51 | 5 |
не работает этот код. Я так понимаю google блокирует.
0
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
25.02.2021, 10:59 [ТС] | 6 |
Начиная с API 30 этот код перестает работать. Что нужно исправить?
Немного информации из студии:
0
|
398 / 342 / 84
Регистрация: 17.10.2014
Сообщений: 1,013
|
|
25.02.2021, 11:08 | 7 |
deprecated не значит что код с использованием AsyncTask перестанет работать.
если что то и сломалось, то AsyncTask тут явно не виновен, при условии что раньше все работало.
1
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
25.02.2021, 11:10 [ТС] | 8 |
Действительно. Хоть студия и перечеркивает код, но он всё равно работает. Ладно. Привыкну)
0
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
25.02.2021, 11:30 | 9 |
Спорное утверждение, учитывая, что там в коде даже не проверяется контекст. AsyncTask изначально нельзя было использовать.
0
|
398 / 342 / 84
Регистрация: 17.10.2014
Сообщений: 1,013
|
|
25.02.2021, 12:03 | 10 |
ну так я код не смотрел, поэтому и сделал акцент на этом:
посыл моего сообщение был в том что deprecated != нерабочий
0
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
25.02.2021, 14:10 | 11 |
Да, но и нельзя утверждать, что deprecated будет работать как и раньше всегда, он может не приводить к ошибке компиляции, а кидать исключение в рантайме или просто не работать. Как, например, getExternalStorageDirectory() на 10м андроиде. Ну а от AsyncTask ещё и до deprecated всё давным давно избавились.
0
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
25.02.2021, 14:53 [ТС] | 12 |
0
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
25.02.2021, 15:23 | 13 |
Откуда нам знать, что для тебя сложно, а что нет.
0
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
25.02.2021, 15:30 [ТС] | 14 |
Логично. Надо просто пробовать. Что нужно переделать в классе SendMail.java?
0
|
androbro
|
25.02.2021, 16:07
#15
|
0
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
14.10.2024, 14:25 [ТС] | 16 |
Добавлено через 2 минуты
Что-то изменилось видимо. Этот код перестал работать. Несколько лет проработал и перестал. Ошибки никакие не выдает
0
|
398 / 342 / 84
Регистрация: 17.10.2014
Сообщений: 1,013
|
|
15.10.2024, 12:46 | 17 |
0
|
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 198
|
|
16.10.2024, 14:05 [ТС] | 18 |
Победил проблему с отправкой электронной почты. Сделал через "javax.mail". Импортировать эти библиотеки можно проще:
Код
implementation(libs.android.mail) implementation(libs.android.activation) Для асинхронной работы с сетью использовал Executors.
0
|
16.10.2024, 14:05 | |
16.10.2024, 14:05 | |
Помогаю со студенческими работами здесь
18
Отправка электронной почты Отправка электронной почты Отправка электронной почты с ПК с русскоязычным именем Отправка электронной почты с шифрованием Https Отправка скрытно сообщения электронной почты Отправка электронной почты с помощью JavaScript Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |