Autore Topic: Richiedere l'invio di un'email tramite intent  (Letto 7039 volte)

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Richiedere l'invio di un'email tramite intent
« il: 25 Settembre 2010, 18:55:49 CEST »
+2
Con questo snippet è possibile richiedere l'invio di un'email tramite i client di posta presenti sul telefono (se più di uno, verrà proposta una schermata di selezione con titolo "Invia email..."):

Codice (Java): [Seleziona]
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"indirizzo@email.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Messaggio...");
               
//L'allegato è opzionale
Uri attachment = Uri.parse("file:///sdcard/file_da_allegare.txt");
emailIntent.putExtra(Intent.EXTRA_STREAM, attachment);
                 
startActivity(Intent.createChooser(emailIntent, "Invia email..."));;
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline dessorry

  • Utente normale
  • ***
  • Post: 230
  • Who lived hoping died craping
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Play Store ID:
    dessorry
  • Sistema operativo:
    Windows, Ubuntu, Kubuntu
Re:Richiedere l'invio di un'email tramite intent
« Risposta #1 il: 01 Aprile 2011, 21:10:17 CEST »
0
Grande!
utilissimo post, sai mica dirmi come si manda a capo il corpo della mail?

grafico.safo

  • Visitatore
Re:Richiedere l'invio di un'email tramite intent
« Risposta #2 il: 14 Febbraio 2012, 11:19:21 CET »
0
prova con \n

Es.
Codice: [Seleziona]
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Prima riga.\nSeconda riga.");
A distanza di quasi un anno penso tu abbia già risolto comunque  :-P

Offline xWOLKx

  • Utente junior
  • **
  • Post: 72
  • Adoro quella citazione western!
  • Respect: +7
    • xWOLKx
    • Wolkrasgt
    • Mostra profilo
    • ZondeIT
  • Dispositivo Android:
    Samsung Galaxy Ace
  • Sistema operativo:
    Windows7
Re:Richiedere l'invio di un'email tramite intent
« Risposta #3 il: 14 Febbraio 2012, 12:24:36 CET »
0
Grande! Capita a fagiolo per un bel copia/incolla senza andarmel oa ricercare sul libro :PPP

Cmq mi chiedevo è possibile mandare una mail senza passare per il client impostato nel telefono?
Ipotizziamo che io voglia allegare un file alla mail, oppure aggiungere del testo (ex un log) che non sia modificabile dall'utente (senno mi modifica il log)?

Se non erro in java qualche anno fa avevo usato una libreria apposta,ma su android?

Offline Splact

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: +1
    • Google+
    • https://www.linkedin.com/profile/view?id=78185089
    • Splact
    • Mostra profilo
    • Splact.com
  • Dispositivo Android:
    One Plus One
  • Play Store ID:
    Dario Carella
  • Sistema operativo:
    Windows 8 64bit
Re:Richiedere l'invio di un'email tramite intent
« Risposta #4 il: 31 Ottobre 2012, 16:05:11 CET »
+1
Salve ragazzi ho raggiunto questo post nel tentativo appunto di realizzare un Intent per l'invio di una mail dalla mia applicazione. Il metodo mostrato funziona e sembra anche corretto, tuttavia ho notato che così facendo nello chooser appaiono anche apps che non sono adibite all'invio di email (vedi Google drive). Girando per il web ho trovato quest'altro modo:

Codice (Java): [Seleziona]
Intent emailIntent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:?subject=" + subject + "&body=" + content + "&to=" + email);
emailIntent.setData(data);
startActivity(emailIntent);

La soluzione anche se sembra fare un passo in più, risulta più rapida poiché viene chiamata direttamente il client email predefinito (oppure uno chooser). Il problema con questa versione però è che non (credo) si possono allegare file...

Offline fabiolino

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LGE LG-E610
  • Sistema operativo:
    Windows 7
Re:Richiedere l'invio di un'email tramite intent
« Risposta #5 il: 02 Novembre 2012, 16:11:40 CET »
0
Salve a tutti. Ho impostato il mio codice (come nel tutorial iniziale) per l'invio dell'email ma stranamente nel client l'allegato non mi appare con le versioni 2.2 e 2.3.3 ma con la 4.0.3 si.
Comunque le prove le ho fatte solo con i vari emulatori ma non su cell.
« Ultima modifica: 02 Novembre 2012, 16:14:45 CET da fabiolino »

Offline rossella.85

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rossella Morgante
  • Sistema operativo:
    Ubuntu 11.10
Re:Richiedere l'invio di un'email tramite intent
« Risposta #6 il: 04 Novembre 2013, 13:39:00 CET »
0
Ottimo tutorial, volevo chiedervi una cosa (forse stupida). Come faccio ad inviare una mail all'utente stesso?
La mail del destinatario dovrebbe essere uguale a quella del mittente... in altre parole come faccio ad ottenere la mail del proprietario del device?
Grazie in anticipo, siete sempre superpreparati :)

Offline ilblondo

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s3
  • Sistema operativo:
    android
Re:Richiedere l'invio di un'email tramite intent
« Risposta #7 il: 15 Novembre 2013, 10:06:34 CET »
0
Grande! Capita a fagiolo per un bel copia/incolla senza andarmel oa ricercare sul libro :PPP

Cmq mi chiedevo è possibile mandare una mail senza passare per il client impostato nel telefono?
Ipotizziamo che io voglia allegare un file alla mail, oppure aggiungere del testo (ex un log) che non sia modificabile dall'utente (senno mi modifica il log)?

Se non erro in java qualche anno fa avevo usato una libreria apposta,ma su android?
Puoi passare dal php che puoi mettere su qualche server

java
Codice: [Seleziona]
       
List<NameValuePair> params1 = new ArrayList<NameValuePair>();
url = "http://www.dominio.it/inviaEmail.php";
                                        HttpPost httppost = new HttpPost(url);
                                        params1 = new ArrayList<NameValuePair>(1);
                                        params1.add(new BasicNameValuePair("to", "io@email.it"));
                                        params1.add(new BasicNameValuePair("object", "oggetto"));
params1.add(new BasicNameValuePair("mes", "message"));
                                        httppost.setEntity(new UrlEncodedFormEntity(params1,
                                                        "UTF-8"));
                                HttpResponse         response = httpclient.execute(httppost);

inviaEmail.php
Codice: [Seleziona]
<?php
        mail($_POST['to'], $_POST['object'],$_POST['mes'], null);
?>

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 323
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Richiedere l'invio di un'email tramite intent
« Risposta #8 il: 06 Novembre 2014, 09:49:14 CET »
0
Salve!

è possible usare una variabile di tipo string invece di usare "messagio" nella seguente riga di codice?

Codice (Java): [Seleziona]
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Messaggio...");
io ci sto provando ma con scarsi risultati