рассмотрите приведенный ниже код:
String outFileName = "/data/data/com.packagename/attachment.ics";
emailintent.putExtra(Intent.EXTRA_STREAM, Uri.parse(outFileName));
emailintent.setType("plain/text");
startActivity(Intent.createChooser(emailintent, "Send mail..."));
Приведенный выше код запускает почтовый клиент с приложением, показанным при его запуске. Но когда я отправляю электронное письмо, вложение не получено. Тело принимается. что здесь происходит не так?
благодарим вас заранее.
EDIT: Есть ли определенный тип mime, который мне нужно поставить для файлов ics? Я даже попробовал отправить txt файл, но это тоже не отправляется. Вложение действительно появляется, когда я пытаюсь отправить электронное письмо, но оно не появляется, когда я получаю письмо
я нашел проблему, которая произошла. Я помещал файл, который я хочу прикрепить к электронной почте, в личную папку внутри своего приложения. Клиент электронной почты не смог получить доступ.
Все, что мне нужно было сделать, это поместить его в общий каталог на sdcard и voila.. клиент электронной почты получил доступ, и я начал получать сообщения, отправленные с моего приложения.
PS: Даже для файлов Iics тип MIME является простым/текстовым.
спасибо за вашу помощь.
Я столкнулся с той же проблемой при отправке электронной почты с прикрепленной базой данных SQLite. Я ищу решение этой проблемы, но ничего не нашел.
нет способа отправить прикрепленный файл по электронной почте из внутреннего хранилища.
Для отправки файла по электронной почте сначала сохраните этот файл на внешнем хранилище, а затем присоедините и отправьте.
Я использую этот код для сохранения файла на SDCard
public void copyFileToSdCard()
{
File f = new File(Environment.getExternalStorageDirectory() + "/File name");
if(f.exists())
{
}
else
{
try
{
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite())
{
String currentPath = "file path";
String backupFilePath = "file name ";
File currentFile = new File(data, currentPath);
File backupFile = new File(sd, backupFilePath);
if (currentFile.exists()) {
FileChannel src = new FileInputStream(currentFile).getChannel();
FileChannel dst = new FileOutputStream(backupFile).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
}
catch (Exception e) {
Log.w("Backup", e);
}
}
}
и это для прикрепления и отправки
Intent i = new Intent(Intent.ACTION_SEND);
i.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] {emailAddress});
i.putExtra(Intent.EXTRA_SUBJECT, "Subject text");
i.putExtra(Intent.EXTRA_TEXT, "Body text");
Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "file name"));
i.putExtra(Intent.EXTRA_STREAM, uri);
i.setType("text/plain");
startActivity(Intent.createChooser(i, "Send mail"));
Есть много тем, связанных с этой темой.
Вы пытались добавить этот
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + attachmentFilePath));
?
Как отправить вложение с помощью электронной почты на Android-телефоне?
Android: Как подключить временное сгенерированное изображение к письму?
проблема с отправкой электронной почты с приложением в программном обеспечении
попробуйте это
emailintent.setType("text/calendar");
public class SendingMail {
public static void SendingMail(Context context) {
final Intent emailIntent = new Intent(
android.content.Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
emailIntent.setType("text/html");
// Image file saved in sdcard
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+File.separator+"sdcard"
+ File.separator + "MyImage.png"));
emailIntent.putExtra(Intent.EXTRA_TEXT, "My image");
context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}
}
Это сработает...