С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Android: Отправить e-maile испльзуя определленій канал связи (wi-fi, sim1, sim2) - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как сделать фон в приложении резиновым http://www.cyberforum.ru/android-dev/thread1419233.html
Пишу простенькое приложение на Android средствами Delphi XE7 и столкнулся с такой проблемой не могу найти решение как сделать фон из картинки так чтобы он был резиновым и автоматически...
Программирование Android Несколько scale в одной анимации Хочу сделать анимацию: в центре экрана появляется точка, затем точка превращается в горизонтальную линию, затем линия вертикально разворачивается во весь экран. Написал такую анимацию:<set ... http://www.cyberforum.ru/android-dev/thread1419180.html
Программирование Android Таймер на массиве дат
Нужно создать CountDownTimer, который бы отсчитывал время на массиве дат, т.е., к примеру, имеется массив и нужно, чтобы таймер в приложении отсчитывал время сначала до первого элемента массива,...
Идентификация экземпляров приложения Программирование Android
Добрый день, Возможно, мой вопрос покажется идиотским, но все же его задам. Речь будет идти о платных приложениях на маркете Гугла. Можно ли каким-либо образом присваивать каждому экземпляру...
Программирование Android Мобильный клиент интернет магазина для Android API http://www.cyberforum.ru/android-dev/thread1419124.html
Здравствуйте, Сразу скажу что ранее подобных API не создавал, поэтому не очень ориентируюсь в текущих best practice. Собственно нужно разработать standalone клиент интернет магазина для...
Программирование Android Написал комплект для сборки приложений Android командной строкой без IDE, Ant, Gradle С помощью статьи на хабре наконец разобрался, как же собственно это сделать - создать Android-приложение, используя только минимум: проводник, блокнот, Android SDK (причем, без Eclipse). Кому... подробнее

Показать сообщение отдельно
WereWolf
0 / 0 / 0
Регистрация: 19.08.2009
Сообщений: 6

Android: Отправить e-maile испльзуя определленій канал связи (wi-fi, sim1, sim2) - Программирование Android

12.04.2015, 19:38. Просмотров 279. Ответов 0
Метки (Все метки)

Добрый день!!!!
Предистория вопроса: нужно отправить письмо на некий почтовый ящик нажатием одной кнопки на форме. Эта задача оказалась не сложной и при использовании данних ресурсов:
1) http://www.mkyong.com/android/how-to-send-email-in-android/
2) http://mobiledevtuts.com/android/android-sdk-smtp-email-tutorial/

Сам вопрос: теперь нужно сделать то же самое, но предвартварительно определить нужний канал коммкуникации (в моём случае их три: wi-fi, sim1, sim2).

Заранее благодарен за ответ!!!

Привожу свой код:
Кликните здесь для просмотра всего текста

AndroidManifest.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company.my.myapplication"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
 
    <application android:label="@string/app_name">
        <activity android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
 
</manifest>
activity_main.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <Button android:id="@+id/send_email"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Send Email"
        android:onClick="sendEmail"/>
</LinearLayout>
MainActivity.java
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
package com.company.my.myapplication;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
 
public class MainActivity extends Activity {
    private Mail m;
 
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        m = new Mail("mymaile@mail.com", "myPWD");
    }
 
    public void sendEmail(View view) {
        String[] toArr = {"destination@mail.com"}; // This is an array, you can add more emails, just separate them with a coma
        m.setTo(toArr); // load array to setTo function
        m.setFrom("mymaile@mail.com"); // who is sending the email
        m.setSubject("test send");
        m.setBody("test send message from android device");
 
        try {
            if (m.send()) {
// success
                Toast.makeText(MainActivity.this, "Email was sent successfully.", Toast.LENGTH_LONG).show();
            } else {
// failure
                Toast.makeText(MainActivity.this, "Email was not sent.", Toast.LENGTH_LONG).show();
            }
        } catch (Exception e) {
// some other problem
            Toast.makeText(MainActivity.this, "There was a problem sending the email.\n" + e.toString(), Toast.LENGTH_LONG).show();
        }
 
    }
}
Mail.java
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
package com.company.my.myapplication;
 
import android.os.AsyncTask;
import android.util.Log;
 
import java.util.Date;
import java.util.Properties;
import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
 
public class Mail extends javax.mail.Authenticator {
 
    private String _user;
    private String _pass;
 
    private String[] _to;
    private String _from;
 
    private String _port;
    private String _sport;
 
    private String _host;
 
    private String _subject;
    private String _body;
 
    private boolean _auth;
 
    private boolean _debuggable;
 
    private Multipart _multipart;
 
 
    public Mail() {
        _host = "smtp.gmail.com"; // default smtp server
        _port = "465"; // default smtp port
        _sport = "465"; // default socketfactory port
 
        _user = ""; // username
        _pass = ""; // password
        _from = ""; // email sent from
        _subject = ""; // email subject
        _body = ""; // email body
 
        _debuggable = false; // debug mode on or off - default off
        _auth = true; // smtp authentication - default on
 
        _multipart = new MimeMultipart();
 
// There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added.
        MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
        mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
        mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
        mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
        mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
        mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
        CommandMap.setDefaultCommandMap(mc);
    }
 
    public Mail(String user, String pass) {
        this();
 
        _user = user;
        _pass = pass;
    }
 
    public boolean send() throws Exception {
        Properties props = _setProperties();
 
        if(!_user.equals("") && !_pass.equals("") && _to.length > 0 && !_from.equals("") && !_subject.equals("") && !_body.equals("")) {
            Session session = Session.getInstance(props, this);
 
            final MimeMessage msg = new MimeMessage(session);
 
            msg.setFrom(new InternetAddress(_from));
 
            InternetAddress[] addressTo = new InternetAddress[_to.length];
            for (int i = 0; i < _to.length; i++) {
                addressTo[i] = new InternetAddress(_to[i]);
            }
            msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);
 
            msg.setSubject(_subject);
            msg.setSentDate(new Date());
 
// setup message body
            BodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText(_body);
            _multipart.addBodyPart(messageBodyPart);
 
// Put parts in message
            msg.setContent(_multipart);
 
// send email
            new AsyncTask<Void,Void,Void>(){
 
                @Override
                protected Void doInBackground(Void... params) {
                    try {
                        Transport.send(msg);
                    } catch (MessagingException e) {
                        e.printStackTrace();
                    }
                    return null;
                }
            }.execute();
 
 
            return true;
        } else {
            return false;
        }
    }
 
    public void addAttachment(String filename) throws Exception {
        BodyPart messageBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource(filename);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(filename);
 
        _multipart.addBodyPart(messageBodyPart);
    }
 
    @Override
    public PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(_user, _pass);
    }
 
    private Properties _setProperties() {
        Properties props = new Properties();
 
        props.put("mail.smtp.host", _host);
 
        if(_debuggable) {
            props.put("mail.debug", "true");
        }
 
        if(_auth) {
            props.put("mail.smtp.auth", "true");
        }
 
        props.put("mail.smtp.port", _port);
        props.put("mail.smtp.socketFactory.port", _sport);
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.socketFactory.fallback", "false");
 
        return props;
    }
 
    // the getters and setters
    public String getBody() {
        return _body;
    }
 
    public void setBody(String _body) {
        this._body = _body;
    }
 
    public void setTo(String[] toArr) {
        this._to = toArr;
    }
 
    public void setFrom(String string) {
        this._from = string;
    }
 
    public void setSubject(String string) {
        this._subject = string;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.