- Android — отправка электронной почты
- Intent Object — Действие для отправки электронной почты
- Намеренный объект — данные / тип для отправки электронной почты
- Intent Object — Дополнительно для отправки электронной почты
- Пример электронной почты
- пример
- Как отправить email с Android?
- Шаг 1
- Шаг 2
- Шаг 3
- Шаг 4
- Отправка E-Mail средствами Android
- Часть 1. Mail, просто Mail
- Часть 2. Mail, анонимус Mail
Android — отправка электронной почты
Электронная почта — это сообщения, распространяемые с помощью электронных средств от одного пользователя системы одному или нескольким получателям через сеть.
Прежде чем приступить к работе с электронной почтой, вы должны знать функциональность электронной почты с намерением. Намерение передает данные из одного компонента в другой компонент в приложении или за его пределами.
Чтобы отправить электронное письмо из вашего приложения, вам не нужно реализовывать почтовый клиент с самого начала, но вы можете использовать существующий, такой как почтовое приложение по умолчанию, предоставляемое из Android, Gmail, Outlook, K-9 Mail и т. Д. Для этого Для этого нам нужно написать Activity, которая запускает почтовый клиент с неявным намерением с правильным действием и данными. В этом примере мы собираемся отправить электронное письмо из нашего приложения с помощью объекта Intent, который запускает существующие почтовые клиенты.
В следующем разделе описываются различные части нашего объекта Intent, необходимые для отправки электронного письма.
Intent Object — Действие для отправки электронной почты
Вы будете использовать действие ACTION_SEND для запуска почтового клиента, установленного на вашем Android-устройстве. Ниже приведен простой синтаксис для создания намерения с действием ACTION_SEND.
Намеренный объект — данные / тип для отправки электронной почты
Чтобы отправить электронное письмо, вам нужно указать mailto: в качестве URI, используя метод setData (), а тип данных будет text / plain, используя метод setType () следующим образом:
Intent Object — Дополнительно для отправки электронной почты
Android имеет встроенную поддержку для добавления полей TO, SUBJECT, CC, TEXT и т. Д., Которые можно прикрепить к цели перед отправкой намерения целевому почтовому клиенту. Вы можете использовать следующие дополнительные поля в вашей электронной почте —
Sr.No. | Дополнительные данные и описание | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
шаг | Описание |
---|---|
1 | Вы будете использовать Android studio для создания приложения Android и назовите его как Tutorialspoint в пакете com.example.tutorialspoint . |
2 | Измените файл src / MainActivity.java и добавьте необходимый код для отправки электронной почты. |
3 | Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо. Я добавляю простую кнопку для запуска почтового клиента. |
4 | Измените файл res / values / strings.xml, чтобы определить необходимые постоянные значения |
5 | Измените AndroidManifest.xml, как показано ниже |
6 | Запустите приложение, чтобы запустить эмулятор Android, и проверьте результат изменений, внесенных в приложение. |
Ниже приводится содержимое измененного основного файла активности src / com.example.Tutorialspoint / MainActivity.java .
Ниже будет содержание файла res / layout / activity_main.xml —
Здесь abc указывает на логотип tutorialspoint
Ниже будет содержимое файла res / values / strings.xml для определения двух новых констант:
Ниже приводится содержимое по умолчанию для AndroidManifest.xml —
Давайте попробуем запустить ваше приложение tutorialspoint . Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из Android Studio, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском приложения программа установки Android Studio отобразит следующее окно, чтобы выбрать вариант, в котором вы хотите запустить приложение Android. Выберите мобильное устройство в качестве параметра, а затем проверьте свое мобильное устройство, которое отобразит следующий экран —
Теперь используйте кнопку « Написать письмо», чтобы вывести список всех установленных почтовых клиентов. Из списка вы можете выбрать один из почтовых клиентов для отправки вашей электронной почты. Я собираюсь использовать клиент Gmail для отправки своего электронного письма, в котором будут доступны все поля по умолчанию, как показано ниже. Здесь From: будет идентификатором электронной почты по умолчанию, который вы зарегистрировали для своего устройства Android.
Вы можете изменить любое из указанных полей по умолчанию и, наконец, использовать кнопку отправки электронной почты, чтобы отправить свою электронную почту указанным получателям.
Источник
Как отправить email с Android?
Давайте научимся отправлять email сообщение с вашего устройства с ОС Android.
Что мы будем делать?
Попытаемся отправить Email сообщение с вашего телефона, но для этого мы реализуем свой клиент который будет отправлять письмо на указанный вами email адрес.
Шаг 1
Создаем Android проект и создаем layout -> main.xml со следующим содержимым:
Выглядеть этот layout будет так:
Шаг 2
Теперь создадим Activity который и будет выполнять отправку сообщения на email.
Создаем класс MainActivity.java со следующим содержимым:
Как видите мы используем стандартный email клиент Android, чтобы с его помощью отправить уже заготовленное нами сообщение. Это делается следующим образом:
Шаг 3
Запускаем и смотрим:
После нажатия на кнопку Отправить появится окно, где вам нужно будет авторизоваться в Gmail, после чего можно отправить ваше сообщение.
Жмем кнопку Send. Готово сообщение отправлено.
Шаг 4
Проверяем пришло ли сообщение на отправленный email:
Как видите сообщение пришло.
И его содержимое соответствует тому что мы писали в нашем клиенте.
Источник
Отправка E-Mail средствами Android
Привет хабр и привет всем!
В данной статье я покажу как реализуется отправка писем средствами самого Android, а также ещё один более интересный способ, но уже с применением внешней библиотеки, которая позволяет нам отсылать письма более приемлимыми для программиста способами.
Часть 1. Mail, просто Mail
- public class SimpleEMail extends Activity <
- Button send;
- EditText address, subject, emailtext;
- @Override
- public void onCreate(Bundle savedInstanceState) <
- super.onCreate(savedInstanceState);
- setContentView(R.layout.simple_email);
- // Наши поля и кнопка
- send = (Button) findViewById(R.id.emailsendbutton);
- address = (EditText) findViewById(R.id.emailaddress);
- subject = (EditText) findViewById(R.id.emailsubject);
- emailtext = (EditText) findViewById(R.id.emailtext);
- send.setOnClickListener( new OnClickListener() <
- @Override
- public void onClick(View v) <
- final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
- emailIntent.setType( «plain/text» );
- // Кому
- emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
- new String [] < address.getText().toString() >);
- // Зачем
- emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
- subject.getText().toString());
- // О чём
- emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
- emailtext.getText().toString());
- // С чем
- emailIntent.putExtra(
- android.content.Intent.EXTRA_STREAM,
- Uri .parse( «file://»
- + Environment.getExternalStorageDirectory()
- + «/Клипы/SOTY_ATHD.mp4» ));
- emailIntent.setType( «text/video» );
- // Поехали!
- SimpleEMail. this .startActivity(Intent.createChooser(emailIntent,
- «Отправка письма. » ));
- >
- >);
- >
- >
* This source code was highlighted with Source Code Highlighter .
Вот, код до безобразия прост. Правда можно еще проще: если нам лень создавать дополнительное Activity для ввода наших полей, то можно было бы просто запустить наш Intent.
Плюсы: Простая реализация, достаточно удобно для обратной связи.
Минусы: У пользователя должна быть настроенная программа приёма-передачи почтовых сообщений, без неё обрабатывать данный Intent будет некому.
Часть 2. Mail, анонимус Mail
Данный метод я использовал в своём проекте, обозначим для начала плюсы:
- Не требует от пользователя настроенного клиента
- Может быть полностью анонимным
- Можно передавать все (в пределах разумного, конечно)
Для работы необходимы дополнительные библиотеки javamail-android.
Качаем их, и встраиваем в проект: Контекстное меню проекта > «Build Path» > «Add External Archives. » > «Наши файлы additional, mail, activation»
Для настройки нам также понадобится почтовый ящик зарегистрированный на gmail.com (или любом другом yandex, mail и.т.п.) настройки вы можете посмотреть здесь. В данном случае он будет выступать в виде шлюза через которые будут проходить наши письма.
Начинаем настраивать:
MailSenderClass.java
В данном классе записаны настройки того сервера, через который будет передаваться ваше сообщение. Здесь у нас есть несколько методов:
- public MailSenderClass(String user, String password) — Конструктор. В качестве аргументов передаются логин и пароль от нашего промежуточного ящика на gmail.com. Здесь же прописываются параметры smtp-подключения к серверу.
- protected PasswordAuthentication getPasswordAuthentication() — Аутентификация для сервера.
- public synchronized void sendMail(String subject, String body, String sender, String recipients, String filename) — Основной метод, в который передаются наши данные для отправки.
Рассмотрим код последнего метода чуть ближе:
- public synchronized void sendMail( String subject, String body, String sender, String recipients, String filename) throws Exception <
- try <
- MimeMessage message = new MimeMessage(session);
- // Кто
- message.setSender( new InternetAddress(sender));
- // О чем
- message.setSubject(subject);
- // Кому
- if (recipients.indexOf( ‘,’ ) > 0)
- message.setRecipients(Message.RecipientType.TO,
- InternetAddress.parse(recipients));
- else
- message.setRecipient(Message.RecipientType.TO,
- new InternetAddress(recipients));
- // Хочет сказать
- BodyPart messageBodyPart = new MimeBodyPart();
- messageBodyPart.setText(body);
- _multipart.addBodyPart(messageBodyPart);
- // И что показать
- if (!filename.equalsIgnoreCase( «» )) <
- BodyPart attachBodyPart = new MimeBodyPart();
- DataSource source = new FileDataSource(filename);
- attachBodyPart.setDataHandler( new DataHandler(source));
- attachBodyPart.setFileName(filename);
- _multipart.addBodyPart(attachBodyPart);
- >
- message.setContent(_multipart);
- Transport.send(message);
- > catch (Exception e) <
- Log.e( «sendMail» , «Ошибка отправки функцией sendMail! » );
- >
- >
* This source code was highlighted with Source Code Highlighter .
Метод также прост. Используя объект класса MimeMessage составляем наше письмо и для отправки передаём методу send, класса Transport.
JSSEProvider.java
Провайдер протокола безопасности для нашей почты. Линк.
VideoSelect.java
Код был взят из ApiDemos, которые поставляются в комплекте с Android SDK, и был чуть подправлен для выполнения с помощью метода startActivityForResult.
После выполнения возвращается строка, содержащая путь к файлу на карте памяти. Код можно будет посмотреть в проекте, он в конце статьи.
ExtendedMail.java
Основной метод отправления сообщения выполняется в функции sitv_sender_mail_async, представляющей класс AsyncTask:
- private class sender_mail_async extends AsyncTask String , Boolean><
- ProgressDialog WaitingDialog;
- @Override
- protected void onPreExecute() <
- // Выводим пользователю процесс загрузки
- WaitingDialog = ProgressDialog.show(ExtendedMail. this , «Отправка данных» , «Отправляем сообщение. » , true );
- >
- @Override
- protected void onPostExecute(Boolean result) <
- // Прячем процесс загрузки
- WaitingDialog.dismiss();
- Toast.makeText(mainContext, «Отправка завершена. » , Toast.LENGTH_LONG).show();
- ((Activity)mainContext).finish();
- >
- @Override
- protected Boolean doInBackground(Object. params ) <
- try <
- // Получаем данные с наших полей
- title = ((EditText)findViewById(R.id.screen_sendnews_et_title)).getText().toString();
- text = ((EditText)findViewById(R.id.screen_sendnews_et_text)).getText().toString();
- from = «from_post_msg@gmail.com» ;
- where = «where_post_msg@yandex.ru» ;
- // Вызываем конструктор и передаём в него наши логин и пароль от ящика на gmail.com
- MailSenderClass sender = new MailSenderClass( «mypostmail@gmail.com» , «password» );
- // И вызываем наш метод отправки
- sender.sendMail(title, text, from , where , attach);
- > catch (Exception e) <
- Toast.makeText(mainContext, «Ошибка отправки сообщения!» , Toast.LENGTH_SHORT).show();
- >
- return false ;
- >
- >
* This source code was highlighted with Source Code Highlighter .
- public void onClick(View v) <
- sender_mail_async async_sending = new sender_mail_async();
- async_sending.execute();
- >
* This source code was highlighted with Source Code Highlighter .
Таким образом создав небольшой класс-поток, можно спокойно слать необходимую информацию от клиента к себе на ящик.
Источник