是否可以在Android中发送电子邮件而无需启动相应的应用程序?

时间:2018-03-18 07:09:53

标签: java android android-intent javamail

因此,在https://developer.android.com/guide/components/intents-common.html#Email上详细记录了发送电子邮件 如下: -

public void composeEmail(String[] addresses, String subject) {
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_EMAIL, addresses);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

以上代码我假设会打开或要求您打开电子邮件应用程序(例如gmail)来发送您的电子邮件。

所以我搜索了另一种在不打开应用程序的情况下发送消息的方法。我发现了这个: - http://www.edumobile.org/android/send-email-on-button-click-without-email-chooser/

以上链接显示您必须使用gmail SMTP和JavaMail api基本构建自己的自定义电子邮件应用

我的问题是,有没有办法在没有

的情况下发送电子邮件

一个。打开另一个应用程序。

B中。使用像java邮件等外部库?

这样的事情: - https://imgur.com/a/yatJy

2 个答案:

答案 0 :(得分:1)

答案是否定的,如果你认为以下是“外部图书馆”:

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.AccessController;
import java.security.Provider;

如果您不考虑那些“外部”,我可以根据需要为您提供适用于Android 8.1的代码。经过Gmail,雅虎等测试。

否则,AFAIK,没有原生Android API允许用户直接发送电子邮件(即不通过应用)。

答案 1 :(得分:1)

当然,您可以在不使用外部库或打开应用程序的情况下发送电子邮件。 JavaMail中没有神奇之处。这是你自己写的所有代码。动笔!这比使用JavaMail要付出更多的努力,但如果这就是你想要的,你当然可以做到。