Убран ряд элементов, ни один из которых не поможет, если ваша форма на самом деле не отображается.
Приведенное ниже сообщение успешно отправлено с Nexus 7 1-го поколения с использованием SMTP-сервера, требующего аутентификации и работающего на порту 25.
Если вы действительно подключаетесь к порту 465 на серверах Google, вы должны использовать шифрование, к которому этот код не относится.
Простые присваивания IdMessage1.From.Text := 'бла-бла'; Не работали, поэтому вы увидите, что я заменил IdMessage1.From.Address и аналогичные свойства на другие свойства IdMessage1.
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, IdMessage,
FMX.StdCtrls, FMX.Edit;
type
Ttestform = class(TForm)
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
btnMessageSend: TButton;
edtUsername: TEdit;
edtPassword: TEdit;
Label1: TLabel;
Label2: TLabel;
edtFrom: TEdit;
Label3: TLabel;
edtTo: TEdit;
Label4: TLabel;
edtServer: TEdit;
Label5: TLabel;
edtPort: TEdit;
Label6: TLabel;
procedure btnMessageSendClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
testform: Ttestform;
implementation
{$R *.fmx}
procedure Ttestform.btnMessageSendClick(Sender: TObject);
var
intPort: Integer;
begin
ShowMessage('In button click');
IdSMTP1.Heloname:='test';
IdSMTP1.Host:=edtServer.Text;
IdSMTP1.Username:=edtUsername.Text;
intPort := 25;
ShowMessage('Before strtoint');
TryStrToInt(edtPort.Text, intPort);
ShowMessage('After strtoint');
IdSMTP1.Port:= intPort;
IdSMTP1.Password:=edtPassword.Text;
if IdSMTP1.Connected=True then IdSMTP1.Disconnect;
IdMessage1.Clear;
IdMessage1.From.Address := edtFrom.Text;
IdMessage1.Recipients.Add;
IdMessage1.Recipients.Items[0].Address := edtTo.Text;
IdMessage1.Priority := mpHigh;
IdMessage1.Sender.Address:=edtFrom.Text;
IdMessage1.Subject := 'Subject';
IdMessage1.Body.Add('test');
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
end;
end.
person
Anthony Eischens
schedule
02.10.2013
IdMessage1.BccList.EMailAddresses :='[email protected];;
. - person Marcus Adams   schedule 02.10.2013