Mail4ME Api работает на эмуляторе, но не на телефоне - PullRequest
1 голос
/ 09 августа 2011

Я занимаюсь разработкой приложения j2me, которое отправляет электронные письма. Это код, который я написал:

public class SendMail extends MIDlet implements CommandListener {

    SmtpClient smtpClient = null;
    Form form=null;
    Command cmdSend=null;
    Command cmdExit=null;

    protected void startApp() throws MIDletStateChangeException {
        form = new Form("Send Email");
        cmdSend = new Command("Send", Command.OK, 0);
        cmdExit = new Command("Exit", Command.EXIT, 0);
        form.addCommand(cmdExit);
        form.addCommand(cmdSend);
        form.setCommandListener(this);
        Display.getDisplay(this).setCurrent(form);
    }

    protected void pauseApp() {
    }

    protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
        notifyDestroyed();
    }

    public void commandAction(Command c, Displayable d) {
        if (d == form) {
            if (c == cmdSend) {
                new Thread(new Runnable() {

                    public void run() {
                        try {
                            Message message = new Message("****@gmx.com", "****@live.com", "Test my j2me app");
                            message.addBodyLine("Hi this is a test email by me");
                            smtpClient = new SmtpClient("http://127.0.0.1/");
                            smtpClient.open("mail.gmx.com", 587, false, "****@gmx.com", "myPassword");
                            smtpClient.sendMessage(message);
                            smtpClient.close();
                        } catch (IOException ex) {
                            ex.printStackTrace();
                            form.append(ex.getMessage()+ "*1*");
                        } catch (MailException ex) {
                            ex.printStackTrace();
                            form.append(ex.getMessage() + "*2*");
                        }
                    }
                }).start();
            } else if (c == cmdExit) {
                try {
                    destroyApp(true);
                } catch (MIDletStateChangeException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
}

Я протестировал этот код с помощью WTK 2.5.2_01, и он отлично работает, и я получил электронное письмо на свою реальную учетную запись, но при развертывании приложения в моем Nokia N70 он не работает и показывает следующее исключение:

connection closed by peer *1*

Есть идеи?

...