使用特定帐户从outlook(com组件)使用php发送电子邮件

时间:2015-03-27 05:26:02

标签: php outlook

我正在使用PHP和outlook发送电子邮件。 我在Outlook中设置了多个帐户,我想每次都从特定帐户发送电子邮件。 我目前的代码如下:

if (!defined('olMailItem')) define("olMailItem",0);
$objApp = new COM("Outlook.Application");
$myItem = $objApp->CreateItem(olMailItem);
$myItem->To= 'to@abc.com';
$myItem->SentOnBehalfOfName = 'from@xyz.com';
$myItem->Subject='my subject';

$myItem->HTMLBody='email content';
$myItem->Display();
$myItem->Send()

使用$myItem->SentOnBehalfOfName不起作用,它总是使用默认帐户发送电子邮件,但我想使用PHP设置来自帐户。

1 个答案:

答案 0 :(得分:1)

看起来您对MailItem类的SendUsingAccount属性感兴趣,该属性允许设置一个Account对象,该对象表示要在其下发送MailItem的帐户。 SendUsingAccount属性可用于指定调用Send方法时应用于发送MailItem的帐户。例如:

Sub SendUsingAccount() 
  Dim oAccount As Outlook.account 
  For Each oAccount In Application.Session.Accounts 
    If oAccount.AccountType = olPop3 Then 
      Dim oMail As Outlook.MailItem 
      Set oMail = Application.CreateItem(olMailItem) 
      oMail.Subject = "Sent using POP3 Account" 
      oMail.Recipients.Add ("someone@example.com") 
      oMail.Recipients.ResolveAll 
      oMail.SendUsingAccount = oAccount 
      oMail.Send 
    End If 
  Next 
End Sub 

请注意,Microsoft目前不推荐也不支持任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)的Microsoft Office应用程序自动化,因为Office在此环境中运行Office时,可能会出现不稳定的行为和/或死锁。

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。有关详细信息,请参阅Considerations for server-side Automation of Office