Отправка Писем Из Мидлета Или Как Я Ловил Ошибки Удаленно

Многие наверняка подумали, что отправка писем на электронную почту из приложения будет очень полезной.

Например, в качестве отзыва о работе программы, или с регистрационными данными, или мало ли что еще.

Итак, при разработке программы я хотел получать сообщения об ошибках в программе, ведь у меня как у инди-разработчика под рукой десяток-другой самых обычных телефонов, а масштабное тестирование провести не так-то просто.

на широком спектре устройств, особенно новых.

Поэтому механизм уведомления об ошибках был бы очень полезен, по крайней мере, на этапе бета-тестирования.

Покопавшись в сети, я нашел несколько библиотек для работы с почтой, в том числе и mobilab. Но как я ни старался, мне так и не удалось отправить письмо, хотя демо-версии работали.

А время истекало.

Как гласит народная мудрость,



Если хочешь, чтобы все было хорошо, сделай это сам

Я нашел на этот сайт исходный код почтового клиента, и, по крайней мере, он работал.

Но к сожалению обнаружил проблемы с кодировкой спецсимволов и кириллицы.

Мне пришлось быстро добавить собственный кодировщик строк.

Я скомпилировал все в библиотеку, написал класс для работы с ней и добавил в приложение.

Сначала это была отдельная точка, из которой пользователи могли в случае чего отправлять сообщения, пришедшие мне на почту.



Отправка писем из мидлета или Как я ловил ошибки удаленно

Позже я пришел к выводу, что надежнее было бы автоматизировать это дело, заранее предупреждая пользователей о сборе информации об ошибках.



Отправка писем из мидлета или Как я ловил ошибки удаленно

В результате окончательный код отправки стал таким:

  
   

} catch (Exception ex ){ sendMail("main class","some method" , ex); } public void sendMail(string classname, String methodname, Exception e) { SendMail mail=new SendMail(); mail.setText(classname+":"+methodname+":"+ e.toString()); mail.start(); }

И мои письма выглядят примерно так

Отправка писем из мидлета или Как я ловил ошибки удаленно

И сам обработчик отправителя

import Mail.Connection; import Mail.Decoder; import Mail.Message; import Mail.SmtpClient; public class SendMail extends Thread { String host = "smtp.mail.ru"; int port=25; String adressfrom = "[email protected]"; String pass = "123456"; String adressto = "[email protected]"; String subject = "Bugreport"; String text = ""; public void run() { try { String string = Decoder.encode(text, false); SmtpClient smtpclient = new SmtpClient(new Connection()); smtpclient.open(host, port, adressfrom, pass); Message message = new Message(adressfrom, adressto, Decoder.encode(subject), true)); message.addHeaderLine("X-mailer: 1.0"); message.addHeaderLine("Content-Type: text/plain; charset=UTF-8"); message.addHeaderLine("Content-Transfer-Encoding: quoted-printable"); message.addBodyLine(string.concat("\r\n")); smtpclient.sendMessage(message); smtpclient.close(); } catch (Exception exception) { } } public void setText(String text) { this.text = text; } }

Ну и исходники библиотеки goo.gl/oVv8e Теги: #разработка j2me #отправка электронной почты #разработка Java ME
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.