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

Бредни с классами - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Ошибка при открытии приложения на телефоне http://www.cyberforum.ru/android-dev/thread1436949.html
Суть приложения. Показывает на карте месторасположение и выводит в TextView координаты и время. Работаю на Android Studio ( пытаюсь:) ). и подскажите как из LogCat вытянуть ошибку. Он постоянно...
Программирование Android Органайзер обновляется только после перезапуска приложения Вот пытаюсь сделать свой органайзер, но что то не идет, все повисло на обновлении списка. Обновляется только после перезапуска приложения. Подскажите как сделать что бы лист постоянно обновлялся и... http://www.cyberforum.ru/android-dev/thread1436942.html
Сравнение координат объектов Программирование Android
Здравствуйте. Решил создать простенькую игру, привязал движение ImageView к акселерометру. Пытаюсь сравнить координаты движущегося Imageview и еще одного - статичного (чтобы обработать столкновение)....
Программирование Android Открытие PDF файла в другом приложении
Здравствуйте. Имеется путь к PDF - файлу. Необходимо что бы при клике этот файл открывался в другом установленном пользовательском приложении. Как такое реализовать?
Программирование Android CountDownTimer - "в приложении произошла ошибка" http://www.cyberforum.ru/android-dev/thread1436828.html
в приложении работает обратный счетчик реализованный через CountDownTimer. время от времени вылезает ошибка "в приложении .. произошла ошибка". ошибка точно из-за счетчика, поскольку вылезала когда...
Программирование Android Android NDK сборка проекта Всем привет. Есть кто разбирается в Android NDK и сопутствующих технологиях по сборке приложений? Установил NDK, SDK, Cygwinn, прописал все системные переменные и пути, без проблем собираю NDK... подробнее

Показать сообщение отдельно
NightShock
3 / 3 / 1
Регистрация: 22.10.2011
Сообщений: 65

Бредни с классами - Программирование Android

04.05.2015, 01:20. Просмотров 385. Ответов 1
Метки (Все метки)

Доброй ночи. Уже битый час пытаюсь разобраться с простеньким кодом который работает совершенно не так, как мне хочется...

Собственно имеется класс для работы с почтой:
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
package com.android.core;
 
/**
 * Created by NightShock on 25.01.2015.
 */
import java.io.File;
import java.security.Security;
import java.util.Properties;
 
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
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;
 
import android.util.Log;
 
public class MailSenderClass extends javax.mail.Authenticator {
    private String mailhost = "smtp.gmail.com";
    private String user;
    private String password;
    private Session session;
 
    private Multipart _multipart;
 
    static {
        Security.addProvider(new com.android.core.JSSEProvider());
    }
 
    public MailSenderClass(String user, String password) {
        this.user = user;
        this.password = password;
        _multipart = new MimeMultipart();
 
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", mailhost);
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.quitwait", "false");
 
        session = Session.getDefaultInstance(props, this);
 
    }
 
    protected PasswordAuthentication getPasswordAuthentication() {
        Log.e("sendMail","aut 1: "+user+password);
        return new PasswordAuthentication(user, password);
    }
 
    public synchronized void sendMail(String subject, String body, String sender, String recipients, String filename) throws Exception {
        //try {
            Log.d("sendMail","send: "+subject+"|"+body+"|"+filename );
        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.substring(filename.lastIndexOf("\\") + 1));
 
                _multipart.addBodyPart(attachBodyPart);
            }
 
        message.setContent(_multipart);
 
        Transport.send(message);
 
            try {
 
                if (filename != "") {
                    Log.d("sendMail","Удаление "+filename);
                    File file = new File(filename);
                    file.delete();
                    //return true;
 
                }
            }
            catch (Exception e)
            {
                //return false;
            }
 
        /*} catch (Exception e) {
            Log.e("sendMail","Ошибка отправки функцией sendMail! "+e.getMessage());
        }*/
    }
}
Вызывается вот так (отправляем письмо самому себе):
Java
1
2
                MailSenderClass sender = new MailSenderClass(MasterMail, MasterPass);
                sender.sendMail("blablabla", MasterMail, MasterMail, "");
Всё прекрасно работает до тех пор, пока нам не захочется иметь возможность отсылать письма с разных ящиков.
Вроде бы всё просто, но при таком подходе письма продолжают отправляться с аккаунта MasterMail:
Java
1
2
3
4
5
                MailSenderClass sender = new MailSenderClass(MasterMail, MasterPass);
                sender.sendMail("blablabla", MasterMail, MasterMail, "");
 
                sender = new MailSenderClass(MasterMail2, MasterPass2);
                sender.sendMail("blablabla", MasterMail2, MasterMail2, "");
Более того, если мониторить "protected PasswordAuthentication getPasswordAuthentication()", то пользователь и пароль в ней не меняются вообще.

Я пошел дальше и клонировал класс MailSenderClass:

Java
1
2
3
4
5
                MailSenderClass sender = new MailSenderClass(MasterMail, MasterPass);
                sender.sendMail("blablabla", MasterMail, MasterMail, "");
 
                MailSenderClass2 sender = new MailSenderClass2(MasterMail2, MasterPass2);
                sender2.sendMail("blablabla", MasterMail2, MasterMail2, "");

Но при этом при вызове sender2.sendMail продолжает вызываться старый getPasswordAuthentication(), из класса MailSenderClass со старым логином и паролем (MasterMail, MasterPass).

Начинаю потихоньку сходить сума... Спасайте

Добавлено через 6 минут
Ах, да, вызывается это всё вот отсюда, если это важно:
Java
1
2
3
4
5
6
private class sender_mail_async extends AsyncTask<Object, String, Boolean> {
 
***
 
@Override
        protected Boolean doInBackground(Object... params) {
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru