E-Mail Anhang

  • 4 Antworten
  • Letztes Antwortdatum
K

kobra83

Fortgeschrittenes Mitglied
14
Ich würde gerne wissen wie ich eine Datei an eine E-Mail anhänge?

Für Testzwecke habe ich mir einfach ein neues Testprojekt erstellt. In dem ich eine Text-Datei (liegt auf der SD-Karte) aus einem String erzeuge was auch alles klappt, aber wie kann ich jetzt diese Datei an die unten automatisch erzeugte Mail anhängen



Auszug aus meinem Test-Projekt:

public void versenden(View view){

EditText zwischen = (EditText)findViewById(R.id.editText1);
String Text = zwischen.getText().toString();

File Datei;
FileWriter schreiben = null;

File root = Environment.getExternalStorageDirectory();
try {
Datei = new File(root, "/Arbeit/text.txt");
schreiben = new FileWriter(Datei);
schreiben.append(Text);
schreiben.flush();
schreiben.close();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//E-Mail erzeugen

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String[] recipients = new String[]{"mail@mail.com", "",};
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Datei Arbeit"); //Betreff
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Datei Arbeit"); //Inhalt
emailIntent.setType("text/plain");

startActivity(Intent.createChooser(emailIntent, "Send mail..."));

finish();


}
 
Zuletzt bearbeitet:
Zu diesem Thema konnte ich folgendes finden, was plausibel klingt. Habe es aber nicht getestet.

Code:
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + strFile));
 
Erstmal Danke für die schnelle Hilfe.
Komisch das ist es irgendwie noch nicht
Auf dem Handy wird mir der Anhang angezeigt, aber wenn ich die Mail am PC empfange, ist kein Anhang dran.

Erstelle ich eine Mail über die GoogleMail App mit Anhang, kommt der Anhang auch auf dem PC.


Zusatz:

Soweit ich das jetzt mit bekommen habe, ist das Problem, dass ich die Datei auf der SD-Karte liegen habe, wo ich Sie ja auch haben will nur bekommt das E-Mail Programm keinen Zugriff auf die Datei wenn ich Sie versenden will. Normalerweise greife ich ja über:
.....
File root = Environment.getExternalStorageDirectory();
try {
Datei = new File(root, "/Arbeit/text.txt");
.....
auf die Datei zu.


Aber wie mache ich dies dem E-Mail Programm klar
 
Zuletzt bearbeitet:
Also ich würde es wie folgt probieren:

Code:
File root = Environment.getExternalStorageDirectory();
File file = new File( root.getAbsolutePath() + File.separator + "Arbeit", "text.txt" );
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath()));
Environment.getExternalStorageDirectory() liefert Dir aber auch nur den Zugang zur internen SD-Card. Wenn Du noch eine Externe hast und die wird nicht unter der internen SD-Card gemountet, dann musst Du dies separat auslesen oder eben den absoluten Pfad angeben.
 
  • Danke
Reaktionen: kobra83
Ein dickes Danke an Trised mit deinem Code hat es geklappt
 
Zurück
Oben Unten