我正在尝试使用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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)