Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在android中发送电子邮件而不启动相应的应用程序?_Java_Android_Android Intent_Jakarta Mail - Fatal编程技术网

Java 是否可以在android中发送电子邮件而不启动相应的应用程序?

Java 是否可以在android中发送电子邮件而不启动相应的应用程序?,java,android,android-intent,jakarta-mail,Java,Android,Android Intent,Jakarta Mail,因此,发送电子邮件有很好的文档记录在- 详情如下:- 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

因此,发送电子邮件有很好的文档记录在- 详情如下:-

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)来发送您的电子邮件

所以我寻找了另一种不用打开应用程序就能发送消息的方法。我发现了这个:-

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

我的问题是,有没有一种方法可以在没有电子邮件的情况下发送电子邮件

A.打开另一个应用程序

B.使用java mail等外部库


<> P> >答案是否定的,如果你认为以下是“外部库”:

如果你不考虑那些“外部”,我可以给你在Android 8.1上工作的代码,如果你需要的话。通过Gmail、雅虎和其他网站进行测试


否则,恕我直言,本机Android API不允许用户直接发送电子邮件(即不通过应用程序)。

当然,您可以发送电子邮件,而无需使用外部库或打开应用程序。JavaMail没有魔力。这些都是你可以自己编写的代码。开始写吧!这比使用JavaMail要费劲得多,但如果你想这样做,你当然可以这样做。

不。Android没有内置电子邮件API。如果您希望发送电子邮件,请使用Intent或外部库。意图通常是首选,因为它让用户有机会更改邮件,并将其设置为一个工作的、授权的SMTP服务器。这与90年代不同,你不能仅仅把一个随机电子邮件应用程序指向一个随机电子邮件服务器,然后期望它在这些日子里工作。如果你想为他们提供一个如图所示的用户界面,你为什么不使用intent并启动用户首选的电子邮件客户端?@Gabe因为,我可能是这里的少数,我讨厌被迫在应用程序之间切换,以获得另一个应用程序中提供的某些功能。如我所知,如果你想在WhatsApp、脸谱网等上分享一些东西,你需要切换到那个特定的应用程序,但是我认为电子邮件是一个基本的功能。你是少数。编写一个好的电子邮件客户端很难。你有你的应用程序要写,你不需要花时间写第二个已经完成的应用程序,而且这样做的方式更糟糕。我将不得不花大量的时间将它串起来(你将使用什么smtp设置?你将运行服务器吗?如果不是,我如何进行身份验证?如果是,你如何保护它并确保我不会被发现为垃圾邮件?)。这真的不现实。谢谢你的鼓励。但是如果邮件没有android api,我只有两个选择:JavaMail和自己编写代码,那么我会坚持使用JavaMail lol。这是一个非常明智的选择!:-)
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;