Отправка электронной почты из приложения Android - PullRequest
2 голосов
/ 15 апреля 2011

Я пытаюсь разработать приложение для Android, которое отправляет электронную почту с помощью JavaMail.Я попробовал приведенный ниже код как консольное приложение, и оно работает, но когда я использую приложение в качестве приложения для Android из эмулятора, оно выдает исключение без сообщения.Я изменил файл manifest.xml и вставил, но он все еще не работает.Исключение выдается в message.setText («Добро пожаловать в JavaMail»);Поэтому, пожалуйста, помогите мне!

Я использую mail.jar и активации.jar от Sun.

Ниже приведен полный код ClickHandler.

 public void btnSendClickHandler(View view)
    {
         try{
            String host = "smtp.gmail.com";
            String from = "username@gmail.com";
            String pass = "password";
            Properties props = System.getProperties();
            props.put("mail.smtp.starttls.enable", "true"); // added this line
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.user", from);
            props.put("mail.smtp.password", pass);
            props.put("mail.smtp.port", "587");
            props.put("mail.smtp.auth", "true");

            String[] to = {"toEmailAddress@gmail.com"}; // added this line

            Session session = Session.getDefaultInstance(props, null);

            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));

            InternetAddress[] toAddress = new InternetAddress[to.length];

            // To get the array of addresses
            for( int i=0; i < to.length; i++ ) { 
                toAddress[i] = new InternetAddress(to[i]);
            }


            for( int i=0; i < toAddress.length; i++) {
                message.addRecipient(Message.RecipientType.TO, toAddress[i]);
            }

            message.setSubject("sending in a group");
            message.setText("Welcome to JavaMail");//The exception is thrown here   

            Transport transport = session.getTransport("smtp");
            transport.connect(host, from, pass);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
    } catch(Exception e){Toast.makeText(this, e.toString(),
            Toast.LENGTH_LONG).show();}
}

Ответы [ 2 ]

0 голосов
/ 15 апреля 2011

Я не знаком с jar-файлом JavaMail, но если он ссылается на классы, которые не являются частью Android, он не будет работать. Я нашел несколько сайтов, которые создают порты JavaMail для Android.

http://code.google.com/p/javamail-android/

http://groups.google.com/group/android-developers/browse_thread/thread/9c7bca0a1b6957a9

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

0 голосов
/ 15 апреля 2011

нельзя использовать

System.getProperties();

в использовании Android

emailIntent.putExtra

попробуйте этот пример

...