在Android中发送电子邮件

3
我正在尝试通过点击按钮发送电子邮件,发送的邮件是用户提供的身份验证代码。但是邮件没有正确发送。有人可以帮我解决这个问题吗?
我根据此创建了我的应用程序:- 在Android中使用JavaMail API发送电子邮件,而不使用默认/内置应用程序 这是我收到的日志消息。
03-16 01:51:13.592    1913-1913/com.example.dushani.emailsender I/art﹕ Not late-enabling -Xcheck:jni (already on)
03-16 01:51:13.688    1913-1928/com.example.dushani.emailsender D/OpenGLRenderer﹕ Render dirty regions requested: true
03-16 01:51:13.711    1913-1913/com.example.dushani.emailsender D/﹕ HostConnection::get() New Host Connection established 0xae2eadc0, tid 1913
03-16 01:51:13.724    1913-1913/com.example.dushani.emailsender D/Atlas﹕ Validating map...
03-16 01:51:13.750    1913-1925/com.example.dushani.emailsender I/art﹕ Background sticky concurrent mark sweep GC freed 1795(95KB) AllocSpace objects, 0(0B) LOS objects, 35% free, 402KB/623KB, paused 16.584ms total 23.060ms
03-16 01:51:13.909    1913-1928/com.example.dushani.emailsender D/﹕ HostConnection::get() New Host Connection established 0xa6e3f3f0, tid 1928
03-16 01:51:13.925    1913-1928/com.example.dushani.emailsender I/OpenGLRenderer﹕ Initialized EGL, version 1.4``
03-16 01:51:13.999    1913-1925/com.example.dushani.emailsender I/art﹕ Background partial concurrent mark sweep GC freed 1958(107KB) AllocSpace objects, 0(0B) LOS objects, 53% free, 436KB/948KB, paused 1.878ms total 189.812ms
03-16 01:51:14.019    1913-1928/com.example.dushani.emailsender D/OpenGLRenderer﹕ Enabling debug mode 0
03-16 01:51:14.043    1913-1928/com.example.dushani.emailsender W/EGL_emulation﹕ eglSurfaceAttrib not implemented
03-16 01:51:14.044    1913-1928/com.example.dushani.emailsender W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa6e0df20, error=EGL_SUCCESS
03-16 01:51:47.305    1913-1928/com.example.dushani.emailsender W/EGL_emulation﹕ eglSurfaceAttrib not implemented
03-16 01:51:47.305    1913-1928/com.example.dushani.emailsender W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa6e0df20, error=EGL_SUCCESS
03-16 01:52:30.073    1913-1925/com.example.dushani.emailsender I/art﹕ Background sticky concurrent mark sweep GC freed 1881(109KB) AllocSpace objects, 0(0B) LOS objects, 23% free, 723KB/948KB, paused 1.427ms total 111.164ms

1
请将您的代码粘贴在这里! - T D Nguyen
这似乎是一个 OGL 问题,而不是电子邮件。 - m0skit0
请问OGL问题是什么,有没有解决方法? - Ishara Madushani
我正在使用Android Studio开发一款应用程序。首先,用户必须通过提供他/她的电子邮件和密码来注册该应用程序。之后,用户必须提供一个秘密代码,并且该代码必须发送到他/她的电子邮件账户(发件人和收件人电子邮件地址相同)。如果你有任何更好的方法来执行此操作,请分享任何片段代码。 - Ishara Madushani
1个回答

2
我使用这种方法,
Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("message/rfc822");

    String possibleEmail = new String();
    mailArray = new String[]{getString(R.string.mail), possibleEmail};

    Pattern emailPattern = Patterns.EMAIL_ADDRESS;
    Account[] accounts = AccountManager.get(getBaseContext()).getAccounts();

    for (Account account : accounts) {
        if (emailPattern.matcher(account.name).matches()) {
            possibleEmail = account.name;
        }
    }

    if(sendToMeCheckBox.isChecked()){

        mailArray [1] = possibleEmail;
    }

    intent.putExtra(Intent.EXTRA_EMAIL, mailArray );
    intent.putExtra(Intent.EXTRA_SUBJECT, "Some random subject");
    intent.putExtra(Intent.EXTRA_TEXT, "Some random text");

    try {
        startActivity(Intent.createChooser(intent, "Send email..."));
    } catch (Exception e) {
        Toast.makeText(this, "There are no mail applications on the device!", Toast.LENGTH_LONG).show();
    }
}

иҝҷдёӘзӯ”жЎҲжІЎжңүи§ЈеҶіе…ідәҺerrorжҲ–иҖ…JavaMail APIзҡ„й—®йўҳгҖӮжӯӨеӨ–пјҢй—®йўҳиҝҳе»әи®®дёҚиҰҒдҪҝз”ЁIntentгҖӮ - T D Nguyen
我为什么不使用Intent。我在开始时创建对象,并在try块中使用startActivity方法。chooser只会为应用程序使用Intent对象提供多个选项。是的,我没有回答那些问题,也不是我的意图,我只想展示一个例子,说明如何让它工作起来,因为没有人回答。 - Tomislav3008

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接