当前位置 : 主页 > 手机开发 > android >

android – 发送电子邮件Delphi XE5

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在尝试使用Indy组件从Delphi XE5( android)发送电子邮件: 在表单中,我有一个TIdSMTP和一个TIDMessage. 创建表单时: testform:=Ttestform.create(self);testform.show; 应用程序暂停,我不知道有什么问题
我正在尝试使用Indy组件从Delphi XE5( android)发送电子邮件:

在表单中,我有一个TIdSMTP和一个TIDMessage.

创建表单时:

testform:=Ttestform.create(self);
testform.show;

应用程序暂停,我不知道有什么问题…我认为Indy组件在Android中不兼容…

IdSMTP1.Heloname:='test';
  IdSMTP1.Host:='smtp.gmail.com';
  IdSMTP1.Username:='umail@gmail.com';
  IdSMTP1.Port:=465;
  IdSMTP1.Password:='pass';

  if IdSMTP1.Connected=True then IdSMTP1.Disconnect;

  IdMessage1.clear;
  IdMessage1.From.Text :='Testing';
  IdMessage1.BccList.EMailAddresses :='umail@gmail.com';
  IdMessage1.Priority := mpHigh;
  IdMessage1.Sender.Text:='Umail';
  IdMessage1.Subject := 'Subject';
  IdMessage1.Body.Add('test');
  IdSMTP1.Connect;
  Try
    IdSMTP1.Send(IdMessage1);
  except
  End;

有人用这个吗?!

Form Dont SHOW应用程序暂停…
请在这里查看完整的来源http://pastebin.com/iGtJrHHs

这不是Indy问题的直接答案,但如果您考虑在Android上使用内置电子邮件创建选项进行切换,您可以使用以下代码:

uses
  FMX.Helpers.Android,
  Androidapi.JNIBridge,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.GraphicsContentViewText;
...
procedure CreateEmail(const Recipient, Subject, Content: string);
var
  Intent: JIntent;
  Recipients: TJavaObjectArray<JString>;
begin
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_SEND);
  Recipients := TJavaObjectArray<JString>.Create(1);
  Recipients.Items[0] := StringToJString(Recipient);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, Recipients);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(Subject));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Content));
  Intent.setType(StringToJString('plain/text'));
  SharedActivity.startActivity(TJIntent.JavaClass.createChooser(Intent,
    StrToJCharSequence('Which email app?')));
end;

我会把它交给其他人来解决Indy问题.

网友评论