0

我创建了一个小型 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):在 Microsoft.Office.Interop.Outlook._MailItem.get_Recipients() 在 SyncEmail.Program.sendMailUsingOutlook(字符串收件人,字符串正文,字符串主题)在 D:\NotEncrypted\Projects\SyncEmail\SyncEmail\Program.cs:line 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();

我得到这个错误

致命错误:在 D:\NotEncrypted\xampp\htdocs\copper\system\modules\projects\index.php 第 11251 行 (!) com_exception: 错误 [0x80004004] D:\ NotEncrypted\xampp\htdocs\copper\system\modules\projects\index.php 在第 11251 行

4

2 回答 2

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();
于 2012-04-24T21:50:32.597 回答
0

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

于 2012-04-24T21:53:47.363 回答