Articles of 电子邮件

在Android上以编程方式发送带附件的电子邮件

我希望实现一个按钮,按下它将打开带有附件文件的默认电子邮件客户端。 我正在关注这个 ,但是我在startActivity上收到一条错误消息,说它正在期待一个活动参数,而我正在给它一个意图。 我使用的是API 21和Android Studio 1.1.0,所以它可能与链接中提供的答案中的注释有关? 这是我作为Android开发者的第四天,如果我遗漏了一些非常基本的东西,那就很抱歉。 这是我的代码: public void sendFileToEmail(File f){ String subject = “Lap times”; ArrayList attachments = new ArrayList(); attachments.add(Uri.fromFile(f)); Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachments); intent.setClassName(“com.android.email”, “com.android.mail.compose.ComposeActivity”); try { startActivity(intent); } catch (ActivityNotFoundException e) { e.printStackTrace(); }

在没有删除的情况下发送HTML电子邮件意图?

注意:我知道SO上有很多类似的问题。 但是,我并没有尝试内联这些图像,我只是希望html保持原样。 通过意图发送HTML电子邮件的正常方式似乎是使用Html.fromHtml(String) 例如: Intent intent = new Intent(android.content.Intent.ACTION_SEND); intent.setType(“text/html”); intent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); intent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(htmlString)); startActivity(intent); 但是,正如它在其文档中所述,它用一个特殊字符替换所有标签以与ImageGetter一起使用。 我不想内联并附加这些图像。 我只是希望img标签保持原样在html中。 我不需要附加图像。 例如,我想: 保持这种状态。 这可能吗? 谢谢

Android:如何将临时生成的图像附加到电子邮件中?

我有一个以编程方式生成的图像,我想通过ACTION_SEND和EXTRA_STREAM方法作为附件发送。 但是我该怎么做? 我的第一次尝试(写入我的基于context.getCacheDir()的文件路径)似乎在Gmail预览中工作(没有图像预览,但附件文件名和图标可见),但附件从未到达收件人端。 我想这与生成的文件的权限有关,但如何避免这种情况? 我是否需要在这些生成的文件上设置更宽松的设置(以便Gmail活动可以访问)? 应用程序的缓存文件夹甚至可以吗? 是否有另一个文件位置更适合写我的文件? 我考虑了下载文件夹,但认为这对于只有在通过电子邮件发送之前只需要存在的东西才是一个尴尬的位置。 我甚至尝试过纯粹在data:image/png;base64,ABCD…编码我的图像data:image/png;base64,ABCD…样式URI。 这也出现在Gmail预览中(附件图标,但没有文件名),但未导致收件人端附件。 有没有人能够通过任何方式将一次性生成的图像附加到电子邮件意图? 我可能忽略了哪些选择?

从电子邮件附件安装APK

每当我通过电子邮件发送.apk文件作为附件,然后从我的电子邮件帐户打开手机中的.apk文件时,我收到解析错误。 但是,如果我将.apk放在我的网站上并提供一个URL,它就像一个魅力。 一个bug? 只有我? 我做错了吗? 谢谢

使用等在android中发送html电子邮件 – 是否真的没有相对内置的Intent方式?

我已经阅读了很多关于从android发送html电子邮件的限制。 发送html电子邮件的所有建议似乎只是将Html.fromHtml(yourHtmlString)传递给意图为Intent.EXTRA_TEXT。 这适用于一些基本标签 – 粗体,斜体 – 但不适用于像html表这样的任何东西。 看起来您可以尝试扩展Html的一些function或实现自己的标签处理程序,但我想知道是否没有更基本的限制会迫使您做一些完全不同的事情(比如邮件api或者某些东西) )。 我建议这个的原因是因为,就意图本身而言,Html.fromHtml(blah)只是一个charsequence,如果你在这个对象的charsequence接口上调用方法,你就看不到任何html的东西了(at至少我没有)。 所有的html / tag东西似乎都包含在Html.fromHtml实际返回的SpannableStringBuilder中……我想知道gmail应用程序是否在封面下查看真正的charsequence然后可以处理几个标签,这意味着没有希望在你的应用程序方面做任何事情来获取/欺骗gmail应用程序来处理比粗体,斜体等更复杂的事情。 我查看了gmail应用程序实际发送的原始电子邮件,它会自动发送没有标签的text / plain和带有有限数量标签的text / html版本。 我甚至尝试坚持一些转义的html标签,这些标签最终可能会转换为电子邮件的text / html部分中的实际标签,但是他们仍然逃脱了…这当然有点hacky。 无论如何,对于任何可能更多关注此事的人,我想做一个额外的确认,默认的android“发送html电子邮件”function会让你疯狂地接近你可能需要的东西,但最后你必须咬子弹并自己实现许多较低级别的东西(例如使用JavaMail API在Android中发送电子邮件而不使用默认/内置应用程序 ,这意味着你必须处理pw的东西等)。 注意(稍后):我将从Html.fromHtml返回的SpannableStringBuilder与一个扩展SpannableStringBuilder的自定义类包装起来,并将其传递给意图侦听对Spanned接口的调用。 事实certificate,当事物被写入发送到电子邮件意图的包裹时,TextUtils.writeToParcel会通过首先检查CharSequence是否是Spanned的实例来进行一些特殊检查以根除粗体/斜体,然后要求跨度(通过spanned.getSpans)。 尽管如此,我认为没有明显的希望进行修改以获得像在那里处理的table / td标签那样简单的东西。 我甚至尝试修改我的SpannableStringBuilder子类的toString()来返回一些原始表html以查看会发生什么,但它会在包裹写入过程中的其他地方转义。 更多(稍后):TextUtils.writeToParcel(CharSequence cs,Parcel p,…)如果cs是“Spanned”的实例,只有在它们实现“ParcelableSpan”接口时写入这些跨度…这是“对于将用作文本跨度“和”的对象的一种特殊的Parcelable只能由框架中的代码使用;它不适用于应用程序实现自己的Parcelable spans“。 所以,即使你想要挂钩并写自己来处理表标签或其他什么,似乎也不鼓励。 男人,我希望hackbod会在这里与我错过的一些明显的东西相比。

100%宽度的表格在Gmail Android中不起作用

我正在尝试构建一个响应式电子邮件 – 除了一些不在Android for Android中合作的小件外,它实际上全面运作。 我有这些非常简单的黑色条纹,它们位于电子邮件的顶部,作为装饰元素: 然而,它们并不像一小块黑白一样显示出类似于Gmail Android应用程序上的超薄感叹号。 同样,有一个页脚没有跨越电子邮件的整个宽度: 有关如何使这些跨越电子邮件的整个宽度的任何建议?

从Android应用程序发送电子邮件

我需要为用户提供function,用户可以通过发送电子邮件来共享某些数据。 我使用下面的代码。 Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType(“text/html”); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, “testing email send.”); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(“this is html text in email body.”)); startActivity(Intent.createChooser(emailIntent, “Email to Friend”)); 这显示了邮件应用程序,gmail和蓝牙供用户选择。 我不希望用户在此列表中显示蓝牙。 我需要做什么 ? 我有Facebook应用程序,它做同样的事情,但没有在列表中显示蓝牙。 我需要做同样的事情。

从Asset文件夹发送包含附件的电子邮件

//EMAIL SENDING CODE FROM ASSET FOLDER email = editTextEmail.getText().toString(); subject = editTextSubject.getText().toString(); message = editTextMessage.getText().toString(); final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType(“file/html”); emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(“content://com.example.deepa.xmlparsing/file:///android_assets/Combination-1.html”)); startActivity(Intent.createChooser(emailIntent, “Send email using”)); 最后,我从资产文件夹(Combination-1.html)获取文件。 它越来越好了 未find运行时错误文件exception。 有没有其他方式发送文件附件?

如何将Drawable图像从资源转换为Bitmap

我试图将Drawable中的图像附加到电子邮件中(从我的应用程序到Gmail应用程序) 我试过下一个代码: Intent emailintent2 = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); emailintent2.setType(“image/*”); emailintent2.putExtra(Intent.EXTRA_EMAIL, emailaddress2); emailintent2.putExtra(Intent.EXTRA_SUBJECT, CorAsunto); emailintent2.putExtra(Intent.EXTRA_TEXT, message2); ArrayList uris = new ArrayList(); uris.add(Uri.parse(“android.resource://” + getPackageName() + “/” + R.drawable.image1)); uris.add(Uri.parse(“android.resource://” + getPackageName() + “/” + R.drawable.image2)); emailintent2.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); startActivity(emailintent2); 但是,当我将图像附加到电子邮件时,我得到的附件没有扩展名“.png”,这就是一个大问题。 所以我想在尝试将这个Drawable图像转换为Bitmap时,我认为ArrayList必须是Bitmap。 我想我会得到图像在附件中定义的图像。 如果有可能,有人可以告诉我该怎么做吗? 转换为位图,添加到Arraylist并附加图像。 如果我说的都错了,有人可以给我一个解决方案吗? 我需要将Drawable中的图像附加到带有扩展名(.png)的电子邮件中。

validationEditText内的电子邮件

我想validationEditText中引入的电子邮件,以及我已经拥有的代码: final EditText textMessage =(EditText)findViewById(R.id.textMessage); final TextView text =(TextView)findViewById(R.id.text); textMessage.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { if (textMessage.getText().toString().matches(“[a-zA-Z0-9._-]+@[az]+.[az]+”) && s.length() > 0) { text.setText(“valid email”); } else { text.setText(“invalid email”); } } public void beforeTextChanged(CharSequence s, int start, int count, int after) {} public void onTextChanged(CharSequence s, int start, int before, int count) {} […]