С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: FireMonkey
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 4
1

Отправка почты [Delphi XE5 Android]

16.05.2014, 20:24. Показов 4862. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Хочу написать программу на Андроид которая будет отправлять на Почту письмо.
Вот код программы:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
unit Unit1;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP, IdBaseComponent, IdMessage, FMX.StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    IdMessage1: TIdMessage;
    IdSMTP1: TIdSMTP;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.fmx}
 
procedure TForm1.Button1Click(Sender: TObject);
var
msg:TIdMessage;
begin
try
msg:=TIdMessage.Create(nil);
msg.Body.Add('ТЕСТ 123456');
msg.Subject:='ТЕМА 123';
msg.From.Address:='n_o_soul@mail.ru';
msg.From.Name:='GAGARIN';
msg.Recipients.EMailAddresses:='n_o_soul@mail.ru';
msg.IsEncoded:=True;
IdSMTP1.Send(msg);
msg.Free;
IdSMTP1.Disconnect;
except
on e:Exception do
begin
msg.Free;
IdSMTP1.Disconnect;
end;
end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
try
IdSMTP1.Host:='smtp.mail.ru';
IdSMTP1.Port:=25;
IdSMTP1.Username:='n_o_soul@mail.ru';
IdSMTP1.Password:='pass123456';
IdSMTP1.Connect;
except
on e:Exception do
end;
end;
 
end.
Когда запускаю приложение на телефоне нажымаю кнопку то кнопка остается нажатой и приложение не отвечает.
Когда же пробую этот же код но на Десктопное приложение все работает.
Помогите пожалуйста решить проблему.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2014, 20:24
Ответы с готовыми решениями:

Delphi XE5 Android!
АПК на андроиде версии 4 запускается и работает нормально а на версиях с выше 5 не запускается и не...

Delphi XE5 & Android
Вчера поставил RAD Studio и решил написать примитивный аудио плеер для Android, но возникла такая...

Клавиатура Android - Delphi XE5
Такая проблема, вводится текст в edit, после нажатия на edit, его закрывает клавиатура, можно ли...

Delphi XE5: Android рисовалка
Всем доброго времени суток. Пытаюсь потихоньку осваивать Delphi XE5 под Android Встала задача...

7
3 / 3 / 2
Регистрация: 20.12.2012
Сообщений: 24
17.05.2014, 08:42 2
Пробегись трасертом, узнай на какой строчке зависает приложение.
0
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 4
22.05.2014, 18:08  [ТС] 3
а как это сделать на Delphi XE5 если я не использую емулятор, а использую телефон.
0
brunnengi
31.07.2014, 17:33 4
Не знаю насколько актуален еще твой вопрос, но мало ли, отвечу.
Вообще согласно канонам построения приложений под Андроид, вы не должны запускать подобные операции в главном потоке. Выносите код в отдельный поток. Это указание по разработке от самого Гугла. А на время его работы, просто выводите окошко что "идет процесс передачи" или типа того.

Но и конечно сама суть того что вы хотите сделать в корне не верна. Отправка почты со смартфона - это не самый продуктивный вариант. Вообще никто не отправляет почту с Андроид приложений. По крайней мере не одно адекватное приложение.
Решение конечно же есть. Если вы хотите добавить форму в духе "написать тех поддержке" или "или сообщить разработчикам о проблеме", то вам нужно просто создать форму, где пользователь забьет свой почтовый адрес, тему, и сам текст. А по нажатию на кнопку "отправить", вы прост шлет GET или POST запрос на скрипт, на своем сервере или хостинге. Где сначала принимаете данные и пишите их в таблицу в базе данных. А потом уже со скрипта, с сервера решаете куда и что отсылать. Можете себе на почту, можете себе написать мобильное приложение которое будет проверять нет ли новых записей и т.д.
Такой подход выбирают потому, что почтовые протоколы "толстые", а грузить приложение такими вещами никто не хочет, да и не будет. Запросы GET/POST куда шустрее, да и если понадобиться, то можно использовать GZip сжатие и тогда трафик станет занимать еще меньше места.
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 6
01.08.2014, 00:32 5
У тебя нету библиотеки " idАntifreeze "
Когда под Android делаешь ее почему-то нету.

Ищу другой путь если ты найдешь сообщи мне.)))
0
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 8
26.12.2018, 17:57 6
Вообще никто не отправляет почту с Андроид приложений.
ну кроме почтовых клиентов которые являются Андроид приложениями, видимо ...
0
0 / 0 / 0
Регистрация: 08.05.2023
Сообщений: 1
08.05.2023, 20:16 7
Для отправки электронной почты в приложении для Android в Delphi XE5 можно использовать библиотеку Indy.

Сначала необходимо добавить компоненты IdSMTP, IdMessage и IdText в разделе Indy Clients.

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

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
procedure SendEmail(Sender: TObject);
var
  Email: TIdMessage;
  SMTP: TIdSMTP;
  EmailAddress: string;
begin
  Email := TIdMessage.Create(nil);
  try
    Email.From.Address := 'youremail@gmail.com';
    Email.Recipients.EMailAddresses := 'recipient1@example.com, [email]recipient2@example.com[/email]';
    Email.Subject := 'Subject of your email';
    Email.Body.Text := 'Text of your email';
    SMTP := TIdSMTP.Create(nil);
    try
      SMTP.Host := 'smtp.gmail.com'; // Адрес SMTP-сервера
      SMTP.Port := 587;
      SMTP.Username := 'youremail@gmail.com'; // Ваш логин от почты
      SMTP.Password := 'password'; // Ваш пароль от почты
      SMTP.UseTLS := utUseExplicitTLS;
      SMTP.AuthenticationType := atLogin;
      SMTP.ConnectTimeout := 5000;
      SMTP.Authenticate;
      SMTP.Send(Email);
      ShowMessage('Email sent successfully');
    except
      on E: Exception do
        ShowMessage('Error sending email: ' + E.Message);
    end;
  finally
    Email.Free;
    SMTP.Free;
  end;
end;
Вызовите эту процедуру, когда понадобится отправить электронное письмо. Например, при нажатии на кнопку:
Delphi
1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
  SendEmail(Self);
end;
Нужно обратить внимание на то, что при отправке через Gmail, вам потребуется включить передачу сообщений по протоколу SMTP в настройках вашей учетной записи Gmail. Кроме того, Gmail может блокировать отправку писем с неизвестных устройств, поэтому возможно, вам также потребуется разрешить доступ к вашей учетной записи Google для вашего приложения Delphi.
0
0 / 0 / 0
Регистрация: 11.03.2020
Сообщений: 1
23.12.2023, 09:54 8
Добрый день всем. Как мне сделать отправку файла с флешки, подключенной к смартфону Андроид (OTG) при помощи приложения (написанного вами), автоматически вызываемого при подключении этой флешки. Адрес почты, ФИО отправителя и ФИО получателя заполняются один раз и запоминаются при следующем вызове. Готов выслушать ваши условия. Спасибо!
0
23.12.2023, 09:54
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2023, 09:54
Помогаю со студенческими работами здесь

Delphi XE5 Android + GPS
Здравствуйте. Вот решил попробовать по программировать на Android. За Delphi уже давно не садился...

Добавить Android SDK в Delphi XE5
Добрый день! Помогите добавить в Environment options/SDK manager (или еще как) android SDK в delphi...

Delphi XE5, Android, перевод строки
Пишу некотору прогу на андроид. Короче некоторой переменной стрингового типа я присваиваю символ...

Как вставить картинку в Delphi XE5 Android?
У меня трабла. Работал раньше в делфи 7. А там было свойство Image1.Picture чтобы загрузить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru