HTML-код Android с веб-страницы - PullRequest
1 голос
/ 15 апреля 2011

Я пишу приложение для Android, и в какой-то момент мне нужно отправить электронное письмо на указанный пользователем адрес. Для этого я открываю приложение электронной почты и заполняю тему и текст, позволяя пользователю заполнить получателя. Отправляемое письмо должно быть в формате html, которое я извлекаю с предварительно указанной веб-страницы. Вытащить HTML из Интернета просто, но не будет отображаться должным образом при отправке по электронной почте. Код, который я использую для открытия почтового приложения:

intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.shareSubject));
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body));
startActivity(Intent.createChooser(intent, "Email:"));

Это должно позволить пользователю выбрать свой почтовый клиент и отправить HTML-письмо, если выбранный клиент поддерживает его. Я тестировал приложение gmail, которое, как сообщалось, поддерживает его, но при получении электронного письма оно отображается в виде обычного текста.

Если это поможет, код, который я в основном использую для получения кода:

String input;
String body = "";
try
{
    URL url = new URL("<url>");
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    while((input = in.readLine()) != null)
        body = body + input;    
}
catch(MalformedURLException e)
{

}
catch(IOException e)
{

}

Я не уверен, почему это терпит неудачу, все, на что я смотрел, говорит о том, что приложение gmail поддерживает отправку html-писем и что это код для этого. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 15 апреля 2011

Ваш вопрос очень похож на вопрос Отправка HTML-почты с помощью Android intent .

Вы можете увидеть кучу предлагаемых решений там. Я бы предпочел решение mdaddy для Android-версии JavaMail API, доступной здесь:

http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android

Таким образом, вам не придется открывать (или полагаться) на любое внешнее почтовое приложение. Вместо этого вы можете взять адрес электронной почты в качестве входного сигнала из вашего приложения и выполнить всю отправку за кулисами.

...