大佬教程收集整理的这篇文章主要介绍了android – 发送电子邮件Delphi XE5,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用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问题.
以上是大佬教程为你收集整理的android – 发送电子邮件Delphi XE5全部内容,希望文章能够帮你解决android – 发送电子邮件Delphi XE5所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。