首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows/Mac上从FireMonkey启动电子邮件客户端?

如何在Windows/Mac上从FireMonkey启动电子邮件客户端?
EN

Stack Overflow用户
提问于 2012-02-28 08:32:53
回答 1查看 1.7K关注 0票数 2

是否有一种从FireMonkey启动电子邮件客户端的跨平台方法,以便它可以在Windows和OS/X上工作。在windows下,我可以执行以下操作:

代码语言:javascript
复制
ShellExecute(0, 'OPEN', 'mailto:somebody@somewhere.com', '', '', SW_ShowDefault);

是否存在等同于启动电子邮件客户端的跨平台功能(最好包含附件、收件人、主题、正文等)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-28 09:46:10

据我所知,没有一种跨平台的方式来发送邮件,但是使用Windows端的ShellExecute函数和用于OSX的NSWorkspace.openURL,您可以编写自己的实现。

尝试这个OSX实现。

代码语言:javascript
复制
uses
  Macapi.Foundation,
  Macapi.AppKit,
  System.SysUtils;

Procedure SendMail(const Mailto,Subject, Body:string);
var
  URL : NSURL;
  AWorkspace : NSWorkspace;
  encodedSubject,
  encodedTo,
  encodedBody    : NSString;
begin
  //NSString *encodedSubject = [NSString stringWithFormat:@"SUBJECT=%@", [subject stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
  encodedSubject :=NSSTR(Format('SUBJECT=',[Subject])).stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding);
  //NSString *encodedBody = [NSString stringWithFormat:@"BODY=%@", [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
  encodedBody    :=NSSTR(Format('BODY=',[Body])).stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding);
  //NSString *encodedTo = [to stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  encodedTo      :=NSSTR(Mailto).stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding);
  //NSString *encodedURLString = [NSString stringWithFormat:@"mailto:%@?%@&%@", encodedTo, encodedSubject, encodedBody];
  //NSURL *mailtoURL = [NSURL URLWithString:encodedURLString];
  // [[NSWorkspace sharedWorkspace] openURL:mailtoURL];
  URL := TNSURL.Create;
  URL.initWithString(NSSTR(Format('mailto:%s?%s&%s',[ encodedTo.UTF8String, encodedSubject.UTF8String, encodedBody.UTF8String])));
  AWorkspace := TNSWorkspace.Create;
  AWorkspace.openURL(URL);
end;
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9474631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档