如何使用outlook和php发送邮件?

时间:2012-04-24 21:45:08

标签: php outlook

我创建了一个小型C#控制台应用程序,使用outlook发送邮件非常简单

Outlook.Application oApp = new Outlook.Application();
            //Create the new message by using the simplest approach.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
            oMsg.Recipients.Add("xxx@xxx.com");  //////////////////problem line 
            oMsg.Subject = "aaaa";
            oMsg.Body = "body";
            //Send the message.
            oMsg.Save();
            oMsg.Send();

需要从php代码调用此代码。

1)它在控制台中运行得很好。

2)当我从php调用时出现错误。我注意到从php调用此控制台应用程序将在系统用户中运行。所以我让outlook作为系统运行,但我仍然得到这个错误。我正在运行Apache服务器。

System.Runtime.InteropServices.COMException(0x80004004):操作已中止(来自HRESULT的异常:0x80004004(E_ABORT))    在Microsoft.Office.Interop.Outlook._MailItem.get_Recipients()    在SyncEmail.Program.sendMailUsingOutlook(字符串收件人,字符串正文,字符串主题)在D:\ NotEncrypted \ Projects \ SyncEmail \ SyncEmail \ Program.cs:第121行

我拉着头发看着不同的东西。任何帮助,将不胜感激。感谢您阅读我的帖子。

我说有些人说使用php我决定去php路由并编写这段代码并得到同样的错误。

if (!defined(‘olMailItem’)) define(“olMailItem”,0);
$objApp = new COM(“Outlook.Application”);
$myItem = $objApp->CreateItem(olMailItem);
$myItem->To=’xxxx@xxx.com’;
$myItem->SentOnBehalfOfName = ‘yyy@xxyyx.com’;
$myItem->Subject=”This is a test”;
$myItem->Body=”This is a Body Section now…..!”;
$myItem->Send();

我收到此错误

致命错误:第11251行的D:\ NotEncrypted \ xampp \ htdocs \ copper \ system \ modules \ projects \ index.php中的消息'未捕获异常'com_exception' (!)com_exception:错误[0x80004004]操作在第11251行的D:\ NotEncrypted \ xampp \ htdocs \ copper \ system \ modules \ projects \ index.php中止

2 个答案:

答案 0 :(得分:0)

PHP可以直接完成JOB

$oApp  = new COM("Outlook.Application") or die('error');
$oMsg  = $oApp ->CreateItem($oApp->OlItemTyp->olMailItem);
$oMsg ->Recipients->Add("xxx@xxx.com");
$oMsg ->Subject="aaaa";
$oMsg ->Body="body";
$oMsg ->Save();
$oMsg ->Send();

答案 1 :(得分:0)

从C#outlook项目创建一个服务器,并监听端口(ex 3455) 并在您的PHP脚本中使用CURL连接到您的服务器(C#程序)