从android上的文件发送电子邮件
Posted
技术标签:
【中文标题】从android上的文件发送电子邮件【英文标题】:Sending email from a file on android 【发布时间】:2021-09-14 16:48:42 【问题描述】:我正在开发一些将在离线电脑上运行的应用程序。 这个应用程序应该准备一些电子邮件到文件(txt、eml、msg、..)。该文件应包含主题、文本,最好还包含附件或附件路径。
然后通过 USB 电缆或蓝牙将此文件复制到具有互联网连接的 android 设备,然后尽可能轻松地发送电子邮件 - 我的想法是使用电子邮件客户端打开文件并单击发送?
这种用例有解决方案吗?
(请不要建议我创建热点并直接从电脑发送,在这种情况下这是不可能的。)
【问题讨论】:
可能是我,但您的问题令人困惑。也许尝试改写? 如果电子邮件的附件位于 PC 中,并且指定的路径来自您提到的文件(txt、eml 等)中的 PC 示例 C:\..\Desktop,该怎么办。那么该文件将如何在 Android 中被引用呢? 您是否也创建了 Android 应用来执行此电子邮件发送任务? 【参考方案1】:我可以想象两种不同的方式来做到这一点,1-使用意图 2-使用网络服务; 这两种方法的第一步都是从文件中提取数据。现在假设您要使用意图。为此,您可以使用以下代码:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");
startActivity(Intent.createChooser(intent, "Send Email"));
另一种方法是创建用于发送电子邮件的 Web 服务。为此,您可以参考https://***.com/a/6270987/12500284; 然后您应该通过 android 应用程序调用此 API 并将数据传递给它。这种方法的优点是无需用户参与即可发送电子邮件。
【讨论】:
【参考方案2】:将 Outlook 邮件另存为邮件文件File - Save
然后把它放在你的手机上然后打开它?
我对此感到困惑,这是为了强制手机从 PC 发送电子邮件,您是否要求我们为您编写蠕虫?
或者你是手动打开文件,因为那是字面意思,就那样做吧。
【讨论】:
【参考方案3】:串口
请您编辑问题并为离线电脑指定编码语言。
假设您使用 c# 进行编码,您可以使用 System.IO.Ports 中的 SerialPort 类和 SerialPortObject 通过 USB 发送数据。
当我使用它时,我的看起来像这样:
using System.IO.Ports;
string[] ports = SerialPort.GetPortNames();
try
SerialPortObject.PortName = ports[0].ToString();
SerialPortObject.Open();
catch (Exception ex)
Console.WriteLine(ex.Message);
SerialPortObject.Write("Hello World");
string response = SerialPortObject.ReadLine();
注意:通过使用端口[0],我正在尝试连接到找到的第一个串行端口。 此外,您可以通过 JSON 发送数据,以确保其全部在一个长字符串中。
正如微软所说:
如果输出缓冲区中有太多字节并且 Handshake 设置为 XOnXOff,则 SerialPort 对象可能会在等待设备准备好接受更多数据时引发 TimeoutException。
对不起,如果这不是您需要的,我只是不太明白这个问题。
【讨论】:
以上是关于从android上的文件发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
android.os.NetworkOnMainThreadException 从 Android 发送电子邮件 [重复]
如何直接从Android应用程序发送电子邮件而不显示设备的默认电子邮件形式?
从托管在 Hostgator 服务器上的 PHP 脚本发送 SMTP 电子邮件
在 iPhone 上的 MessageUI 中使用 MFMailComposeViewController 从应用程序发送电子邮件