Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Jungle
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 16
Записей в блоге: 1
#1

Отправка E-Mail средствами Android - Android

27.04.2015, 15:28. Просмотров 1651. Ответов 9
Метки нет (Все метки)

Можно ли отправить письмо на почту из андроид приложения, оминая Intent.ACTION_SEND?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
28.04.2015, 08:07     Отправка E-Mail средствами Android #2
Читал что можно, выглядет это так как будто с одного мыла ты отправляешь почту на другое, в коде видел логин и пароль первого e-mail
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
28.04.2015, 09:00     Отправка E-Mail средствами Android #3
Jungle,
Цитата Сообщение от Jungle Посмотреть сообщение
оминая Intent.ACTION_SEND
тут два пути:
-вшить логин/пароль/почтовый_ящик в приложение и с данного мыла будет осуществляться отправка.
-анонимная отправка.
на хабре же все описано
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
08.06.2015, 08:32     Отправка E-Mail средствами Android #4
androbro, а вы пробовали так отправлять почту? (я тоже встречал в интернете этот способ)
если да, прикреплять файлы к письму можно?
Паблито
2195 / 1809 / 562
Регистрация: 12.05.2014
Сообщений: 6,440
Завершенные тесты: 1
08.06.2015, 08:44     Отправка E-Mail средствами Android #5
Я так отправляю письма
Если на устройстве настроена почта то приложение будет видно в списке (когда спрашивает через какую программу выполнить интент).

Сильно глубоко не копал эту тему, только на необходимую глубину. Автоматом подставляется поле From, а через свойства интента можно задать тему и текст письма, а так же указать вложение. В моем случае я пересылаю картинки.

Java
1
2
3
4
5
6
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("image/*");
            share.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT TEXT 123");
            share.putExtra(Intent.EXTRA_TEXT, "TEXT 123");
            share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(outputFile)); // сюда прилетает картинка
            startActivity(Intent.createChooser(share, "SHARE RESULT")); //
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
08.06.2015, 09:02     Отправка E-Mail средствами Android #6
Цитата Сообщение от Valakin Посмотреть сообщение
а вы пробовали так отправлять почту?
"так" это как? там вроде как я два способа приводил
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
08.06.2015, 09:46     Отправка E-Mail средствами Android #7
Да, точно), анонимность не обязательна, любой способ без Intent на практике удалось реализовать?
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
08.06.2015, 10:16     Отправка E-Mail средствами Android #8
Valakin,
Цитата Сообщение от Valakin Посмотреть сообщение
анонимность не обязательна, любой способ без Intent на практике удалось реализовать?
да удавалось, только ситуация была с внутренним smtp сервером.
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
08.06.2015, 10:42     Отправка E-Mail средствами Android #9
Понятно, спасибо, как не могу его отключить на хостинге

Добавлено через 24 минуты
как раз

Добавлено через 16 секунд
как раз
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2015, 17:13     Отправка E-Mail средствами Android
Еще ссылки по теме:

Отправка Post запроса в Android предложении Android
Android OpenGL на Android 4.4 и Android 5.0 - нет текстур
Android Android, отправка фотографии на сервер
Android C++ Qt и java Android отправка SMS
Отправка письма на E-mail Android

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

Или воспользуйтесь поиском по форуму:
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
08.06.2015, 17:13     Отправка E-Mail средствами Android #10
Я реализовывал в одном проекте отправление лога при падении
при помощи javax библиотек, адаптированных под android

появляется диалоговое окно с прогресбаром, что приложение упало. и закрывается после отправки

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import android.app.ProgressDialog;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.AsyncTask;
 
import java.io.UnsupportedEncodingException;
import java.util.Properties;
 
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
public class Sendmail {
 
    private final String username = "login";
    private final String password = "pass";
    private Context act;
 
    public void sendMail(Context act, String messageBody) {
        StringBuilder str = new StringBuilder();
        PackageInfo pInfo = null;
        try {
            pInfo = act.getPackageManager().getPackageInfo(act.getPackageName(), 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        if (pInfo != null) {
            str.append("version: ").append(pInfo.versionName);
            str.append("\n");
            str.append("versionCode: ").append(pInfo.versionCode);
            str.append("\n");
        }
        str.append(messageBody);
        this.act = act;
        Session session = createSessionObject();
        String email = "send_to@gmail.com";
        String subject = "debug message";
        try {
            Message message = createMessage(email, subject, str.toString(), session);
            new SendMailTask().execute(message);
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
 
    private Message createMessage(String email, String subject, String messageBody, Session session) throws MessagingException, UnsupportedEncodingException {
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("sendfrom@gmail.com", "sendfrom"));
        message.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress(email, email));
        message.setSubject(subject);
        message.setText(messageBody);
        return message;
    }
 
    private Session createSessionObject() {
        Properties properties = new Properties();
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");
        properties.put("mail.smtp.host", "smtp.gmail.com");
        properties.put("mail.smtp.port", "587");
 
        return Session.getInstance(properties, new javax.mail.Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });
    }
 
    private class SendMailTask extends AsyncTask<Message, Void, Void> {
        private ProgressDialog progressDialog;
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog = ProgressDialog.show(act, act.getString(R.string.send_mail_wait), act.getString(R.string.send_mail_body), true, false);
        }
 
        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            progressDialog.dismiss();
        }
 
        @Override
        protected Void doInBackground(Message... messages) {
            try {
                //if (1 == 2)
                Transport.send(messages[0]);
            } catch (MessagingException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
}
вызывать метод sendMail
Yandex
Объявления
08.06.2015, 17:13     Отправка E-Mail средствами Android
Ответ Создать тему
Опции темы

Текущее время: 04:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru