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

Я пытаюсь разработать приложение для Android, которое отправляет электронную почту с помощью JavaMail.Я попробовал приведенный ниже код как консольное приложение, и оно работает, но когда я использую приложение в качестве приложения для Android из эмулятора, оно выдает исключение без сообщения.Я изменил файл manifest.xml и вставил

<uses-permission android:name="android.permission.INTERNET" /> 

, но он все равно не работает.Исключение составляет message.setText("Welcome to JavaMail");. Пожалуйста, помогите мне!

Я использую mail.jar и activation.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();
                      }}

1 Ответ

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

Может быть, исключение может быть решено, если вы установите тело, используя что-то вроде этого:

_multipart = new MimeMultipart();

BodyPart messageBodyPart = new MimeBodyPart();

messageBodyPart.setText("Welcome to JavaMail");

_multipart.addBodyPart(messageBodyPart);

message.setContent(_multipart);

...