我写了一个小ruby脚本,让我通过调用它和一些命令行参数来发送电子邮件。
在命令行中,这可以工作:
ruby.exe mail_it.rb fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"
但是尽可能地尝试,我无法让它在Delphi 2007 for Win32中运行。这是最新的尝试:
procedure TForm1.Button1Click(Sender: TObject);
var
params: string;
begin
params:= 'mail_it.rb fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"';
caption:= IntToStr(ShellExecute(Form1.Handle, nil, PChar('ruby.exe'), PChar(params), nil, SW_SHOW));
end;
我尝试使用'open'作为ShellExecute中的第二个参数,但它没有帮助。 ShellExecute本身返回42,就我在其他网站上发现的内容而言,我可以判断出“没有错误”。
答案 0 :(得分:1)
试试这个:
shellexecute(0, 'open', '<PUT YOUR PATH HERE>\mail_it.rb', fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"' , nil, SW_NORMAL);
我没有安装ruby,但这适用于我使用编辑器启动.pas文件。只要你有与.rb文件关联的ruby.exe,就可以了。
-don
答案 1 :(得分:0)
这是最小的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
params: string;
begin
shellexecute(0, nil, 'mail_it.rb',
'fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"',
nil, SW_NORMAL);
end;
我不需要mail_it.rb的完整路径,也不需要'open',但我需要'.rb'。