使用JavaScript在HTA中发送电子邮件并隐藏发件人的电子邮件地址

时间:2010-12-06 23:17:38

标签: javascript html-email outlook-2003 hta activexobject

我在使用HTA时有很多选项,现在我正在尝试添加一个页面,允许您直接从HTA发送电子邮件而无需打开MS Outlook。

我正在使用Outlook 2003.我尝试了两种方法来创建电子邮件发送页面:

1。使用Outlook.Application ActiveX对象 - 它不起作用,因为它似乎只适用于Outlook 2007,所以同时我把它排除在外。

2。使用带有'mailto:'的简单HTML - 发送简单的电子邮件工作正常,但我遇到了一个我无法解决的问题。

在Outlook中,我可以从名为“服务邮件”的“虚假”地址发送电子邮件(我只是在“发件人”字段中写入),因此客户将无法回复我的邮件电子邮件。我想在我的HTA页面中也这样做,但我认为这个选项不存在。

有没有办法呢?也许通过使用Outlook 2003的ActiveX对象并使用该对象进行操作?

重要提示:我只能使用客户端语言,因为我没有服务器。

谢谢, ROTEM

1 个答案:

答案 0 :(得分:1)

我在VBScript中发了一封发送电子邮件的HTA。它直接连接到邮件服务器。您不需要安装Outlook(或任何其他电子邮件客户端),因此它非常有用。使用这样的东西:

With CreateObject("CDO.Message")
  .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.server.com"
  .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing")  = 2
  .Subject  = "The subject line"
  .To       = "recipient@email.com"
  .From     = "sender@email.com"
  .TextBody = "The body of the email"
  ' or .CreateHTMLbody "page.htm"
  .AddAttachment "C:\path\to\file.txt"
  .Send
End With

......你明白了。

编辑:刚刚看到此请求专门用于javascript,但它基本上是相同的:

var mailobj = Server.CreateObject("CDO.Message");
mailobj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.server.com";
mailobj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")  = 2;
mailobj.Subject  = "The subject line";
mailobj.To       = "recipient@email.com";
mailobj.From     = "sender@email.com";
mailobj.TextBody = "The body of the email";
mailobj.Configuration.Fields.Update();
mailobj.Send();