Enviar email com anexo.

694 views
Skip to first unread message

Felippe dos Santos Ferreira

unread,
Nov 13, 2012, 8:07:37 AM11/13/12
to androidb...@googlegroups.com
oi galera
quero fazer um botão que ao clicar abre a aplicação de email para ser enviado...
mais esse email deve ter um anexo...
esse anexo deve estar na internet...
quando abre a aplicação de email ele aparece em anexo.
mais envio ele normal, mais o anexo não chega...
sera que tenho que ter esse arquivo em meu tablet?
alguem sabe de uma maneira de baixar esse pdf e guardar no cache para dps ser enviado...

algo parecido....

fiz assim

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType(HTTP.PLAIN_TEXT_TYPE);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"j...@example.com"}); // recipients
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Email subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message text");
emailIntent.setType("application/pdf");
emailIntent
.putExtra(Intent.EXTRA_STREAM, Uri.parse("https://www.taltal.com.br/email/arquivo.pdf"));



valew

Leonardo Fernandez

unread,
Nov 13, 2012, 8:19:31 AM11/13/12
to androidb...@googlegroups.com

Ese pdf e dinámico o e igual para todos.... ?

Send from my Android

--
 
 

Carlos A. M. dos Santos

unread,
Nov 13, 2012, 8:37:02 AM11/13/12
to androidb...@googlegroups.com
2012/11/13 Felippe dos Santos Ferreira <felippen...@gmail.com>:
Eu não recomendaria essa abordagem a não ser que a tua aplicação seja
apenas pra fins de estudo. Existem várias deficiências nela:

1. Essa API é frágil. Não há contrato estabelecido exatamente o que
deve ser feito por que processar o Intent.
2. Tu não sabes qual aplicação de receberá o intent pra enviar o
email, nem qual entereço de remetente será usado. Assumir que será da
conta do Gmail é otimismo puro.
3. Setar o MIME-type pela segunda vez anula o efeito da primeira. Um
Intent só tem um MIME-type.
4. Não há como estabelecer autenticação e autorização no acesso ao
conteúdo remoto que seria enviado como anexo, o que é uma falha de
segurança.

--
"The flames are all long gone, but the pain lingers on"

Felippe dos Santos Ferreira

unread,
Nov 14, 2012, 7:08:27 AM11/14/12
to androidb...@googlegroups.com
Ese pdf e dinámico o e igual para todos.... ?
R: cada tela vai enviar2 pdf que jah vão estar na web... posso dizer que é dinamico... vou atualizar mensalmente o pdf

Teria que baixar o pdf no cache e dps enviar é isso ?

Leonardo Fernandez

unread,
Nov 14, 2012, 6:51:07 PM11/14/12
to androidb...@googlegroups.com

Dinámico seria se ele Code gerado en tempo de execusao... mas se For do jeito que voce falo acho mejolhor enviar so o link en lugar de baijar o pdf en enviar novamente

Send from my Android

--
 
 

Leonardo Fernandez

unread,
Nov 14, 2012, 6:53:06 PM11/14/12
to androidb...@googlegroups.com

Se o destinatario For unico e naos fácil facer o servidor enviar o e-mail

Send from my Android

Leonardo Fernandez

unread,
Nov 14, 2012, 6:54:34 PM11/14/12
to androidb...@googlegroups.com

"Mais facil" sorry

Send from my Android

Felippe dos Santos Ferreira

unread,
Nov 16, 2012, 7:09:16 AM11/16/12
to androidb...@googlegroups.com
num entendi...

"

Se o destinatario For unico e naos fácil facer o servidor enviar o e-mail

Send from my Android

"

o link não passo mandar... tem que ser os arquivos


Em terça-feira, 13 de novembro de 2012 10h07min37s UTC-3, Felippe dos Santos Ferreira escreveu:

Leonardo Fernandez

unread,
Nov 16, 2012, 9:08:22 AM11/16/12
to androidb...@googlegroups.com

Se o destinatario For unico e mais fácil facer o servidor enviar o e-mail

Caso o destinatario do email seja sempre o mesmo voce pode ter en seu servidor php un script que pegue o pdf e envie... voce fas isso chamando por  post a url da pagina, mas ten que ver a questao de seguranza y e dependente de conectividade 

A  otra solucao e baijar o pdf no sd card, anexarlo e enviar via intent, tamben dependente de c



2012/11/16 Felippe dos Santos Ferreira <felippen...@gmail.com>
--
 
 

Felippe dos Santos Ferreira

unread,
Nov 19, 2012, 7:34:14 AM11/19/12
to androidb...@googlegroups.com
mais sabe como baixr o pdf?

eis a minha grande pergunta


Em terça-feira, 13 de novembro de 2012 10h07min37s UTC-3, Felippe dos Santos Ferreira escreveu:

Felippe dos Santos Ferreira

unread,
Jan 16, 2013, 6:14:42 AM1/16/13
to androidb...@googlegroups.com
estou tentando assim
mais sem sucesso

alguem jah teve o mesmo problema?

Tenho que abrir minha aplicação de e-mail (G-mail) e nela jah deve tar anexado alguns pdfs
os pdf podem estar na web ou em uma pasta qual a aplicação ira baixar.

só que quando envio com o endereço da web aparece no gmail anexado maais não chega nada.
e mesmo quando tento pegar o pdf em uma pasta do meu aparelho não vai...

Estive lendo no stackoversalva, que o arquivo so aparece anexado se ele estiver no sd
eu não tenho sd, e não posso contar que meu cliente tenha.

segue o codigo


        if (android.os.Environment.
getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
            cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"MeuAPP");


______________
                Intent shareIntent = new Intent(Intent.ACTION_SEND);
                shareIntent.setType("message/rfc822");
                //shareIntent.setAction(Intent.ACTION_SEND);
                shareIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "flip_n...@hotmail.com" });
                shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Material de apoio do mês de " + mesclicado);
                shareIntent.putExtra(Intent.EXTRA_TEXT, "Você esta recebendo um um email com pdf em anexo");
                shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///MeuAPP/testejan1.pdf"));
                //shareIntent.setType("file/*");
                startActivity(shareIntent);


Em terça-feira, 13 de novembro de 2012 10h07min37s UTC-3, Felippe dos Santos Ferreira escreveu:

Diogo Moreira

unread,
Jan 16, 2013, 6:33:22 AM1/16/13
to androidb...@googlegroups.com
Acredito que você deva baixar o arquivo da internet antes de mandar o seu e-mail. Quanto ao processo de armazenar em cache, existem várias maneiras que na própria API do Android explica. 
http://developer.android.com/guide/topics/data/data-storage.html

--
 
 



--
Diogo Moreira
Mobile Development Engineer

@diogomlins
"Change is life. Stagnation is death."

Felippe dos Santos Ferreira

unread,
Jan 16, 2013, 6:49:37 AM1/16/13
to androidb...@googlegroups.com
jah baixei amigo...esta nesse local "/MeuAPP/testejan1.pdf"
agora só preciso envialo por email...
este esta sendo o problema...

jah quero abrir a aplicação com ele em anexo



Em terça-feira, 13 de novembro de 2012 10h07min37s UTC-3, Felippe dos Santos Ferreira escreveu:

marcelo yonamine

unread,
Jan 16, 2013, 8:55:41 AM1/16/13
to androidb...@googlegroups.com
Quando browser (webkit) faz o download, armazena em arquivo temporario. Poderia existir uma função para copiar o temp para uma pasta de teu app e renomear com a extensão correta e por ultimo anexar no e-mail.

--
 
 

marcelo yonamine

unread,
Jan 16, 2013, 5:38:45 PM1/16/13
to androidb...@googlegroups.com
Para enviar email com anexo:

void Sendemail(String path, String filename) {

        File files = new File(path + filename);

        if (files.isFile()) {

            final Intent emailIntent = new Intent(
                    android.content.Intent.ACTION_SEND);

            emailIntent.setType("image/*");
            emailIntent.putExtra(Intent.EXTRA_STREAM,
                    Uri.parse("file://" + path + filename));
            startActivity(Intent.createChooser(emailIntent, filename));

        } else {

Felippe dos Santos Ferreira

unread,
Jan 18, 2013, 6:54:55 AM1/18/13
to androidb...@googlegroups.com
amigos
prigado por tentarem ajudar...
mais pelo oque eu estuve lendo..tenho que fazer o seguinte

fazer um sistema para baixar os pdfs,
quando bixar tenho que salvalos em um modo publico... não posso contar que tods os aparelhso vão ter sdcard.
ai os arquivos estando em modo publico eu posso envialos por e-mail...

então.... mãos a obra...

Felippe dos Santos Ferreira

unread,
Jan 18, 2013, 6:57:45 AM1/18/13
to androidb...@googlegroups.com

Geronildo Jr.

unread,
Aug 26, 2013, 8:58:25 AM8/26/13
to androidb...@googlegroups.com
Felipe, bom dia!

Você conseguiu resolver este problema? Estou passando por esta dificuldade e também não encontrei uma solução (efetiva) na web.
Também estou tentando usar a interface do GMail para enviar o e-mail com um PDF (pequeno, muito pequeno, apenas 10kb no máximo) anexado. Abaixo o código que estou usando para enviar o e-mail. 

1ª Graça: A interface do GMail abre com todas as informações que setei, INCLUSIVE COM O PDF ANEXADO. Não há erro no envio e nenhuma informação suspeita é mostrada no Logcat. Porém, quando enviado do meu tablet SGTab 10" (Android 3.2) o e-mail chega no destino, mas sem o anexo.

2ª Graça: A mesma rotina envia o e-mail normalmente, inclusive com o anexo, quando enviado do meu Smartphone GSIII Mini (Android 4.1).

- Para ambos os casos (tanto no tablet quanto no smartphone), o arquivo está numa pasta criada pela aplicação na memória do dispositivo (e não no SDCard).

O que fazer? [-_-]'


String assunto = getString(R.string.titulo);
String textoMensagem = getString(R.string.lbl_mensagem);

Intent itMail = new Intent(Intent.ACTION_SEND);
itMail.putExtra(Intent.EXTRA_EMAIL, new String[]{destinatario});
itMail.putExtra(Intent.EXTRA_SUBJECT, assunto);
itMail.putExtra(Intent.EXTRA_TEXT, textoMensagem);
itMail.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + pathFile));
itMail.setType("message/rfcc822");
startActivity(Intent.createChooser(itMail, getString(R.string.lbl_orcamento_titulo_mensagem)));
 

Geronildo Jr.

unread,
Aug 26, 2013, 9:50:49 AM8/26/13
to androidb...@googlegroups.com
Help me, Obi-Wan Kenobi. You're my only hope.

Pedro Subutzki <Pepeu>

unread,
Aug 26, 2013, 10:00:43 AM8/26/13
to androidb...@googlegroups.com
Aqui eu uso o algumas libs para fazer o envio de e-mail.
São elas:
mail.jar
activation.jar
additionnal.jar

Se não achar elas pelo Google me avisa que gero um zip e mando.
É tranquilo implementar o envio de e-mail inclusive com anexo.

-- 
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi





--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Geronildo Jr.

unread,
Aug 26, 2013, 10:09:18 AM8/26/13
to androidb...@googlegroups.com
Oi Pedro, bom dia!

Eu vi este tipo de implementação. O problema é que o cliente quer usar a interface do Gmail, pois já está acostumado com ela. O método que estou usando funciona perfeitamente em um smartphone, mas no tablet não. 

Achei que precisaria acrescentar algo específico para tablets no Manifest, porém não encontrei nada a respeito. Li em alguns posts do stackoverflow falando sobre o local do armazenamento, pois se estiver no diretório da aplicação, o gmail não consegue acessar. Mas, novamente vem o conflito: se assim fosse, não enviaria o anexo pelo smartphone, mas o caminho do arquivo (tanto no smartphone quanto no tablet) são iguais e a configuração do Gmail está igual para ambos os dispositivos.

Por isso acredito que o problema seja no tablet e não no código. Mas, como resolver isso! Já estou ficando P da vida com essa besteira!!! :(

Pedro Subutzki <Pepeu>

unread,
Aug 26, 2013, 10:17:32 AM8/26/13
to androidb...@googlegroups.com
Humm... infelizmente nunca fiz envio de e-mail usando o Gmail como "interface".
Mas o que o seu app precisa fazer? Qual a necessidade do usuário entrar na app do Gmail?
Ele vai escrever alguma coisa? Ele vai escolher o destinatário depois?

Ainda acho a melhor solução embarcar o envio de email na sua app. :D

Geronildo Jr.

unread,
Aug 26, 2013, 10:39:32 AM8/26/13
to androidb...@googlegroups.com

Eu uso Intent pra chamar a interface do GMail (como na figura abaixo). Na intent eu passo todas as informações (remetente, destinatário, assunto, corpo da mensagem e um arquivo PDF como anexo). Esse arquivo é muito pequeno, geralmente não passa de 10kb. Daí, o cliente pode acrescentar outros endereços de e-mail e alterar tanto o assunto quanto a mensagem. O PDF é gerenciado pela app, pois pelo nome o cliente acabaria se enrolando e enviando o arquivo errado. Enfim, o cliente usa table e preciso usar esse recurso. :(

lucasddaniel

unread,
Aug 27, 2013, 7:48:48 AM8/27/13
to androidb...@googlegroups.com
Olá Geronildo, você precisa usar um provider para fazer isso, ou seu anexo não vai chegar.
Eu fiz a partir desse link e funcionou:

Felippe dos Santos Ferreira

unread,
Sep 4, 2013, 10:23:15 AM9/4/13
to androidb...@googlegroups.com
conseguiu?


--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/AC4rre4HQB4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages