0

使用 PHP 发送西里尔文电子邮件时出现问题。我的方面:服务器 IIS - 数据库 MsSQL - 电子邮件服务器:Exchange 2010 /通过 PHP EWS 通信 /

Reciever 是 UA 政府拥有的公司,拥有用于接收电子邮件的特定软件。它与 MS Outlook /手动发送/一起工作。

我尝试将其作为文本发送/不是 html/ 或者我尝试了 PHP Mailer,我也已经尝试过使用 C#/all 都没有与这个特定的公司合作/在 gmail 或 hotmail 上它工作正常//。

$ews = new ExchangeWebServices($server, $username, $password);

$msg = new EWSType_MessageType();

$toAddresses = array();
$toAddresses[0] = new EWSType_EmailAddressType();
$toAddresses[0]->EmailAddress =;
$toAddresses[0]->Name =; 

$msg->ToRecipients = $toAddresses;

$fromAddress = new EWSType_EmailAddressType();

$fromAddress->EmailAddress =;
$fromAddress->Name =;


$msg->From = new EWSType_SingleRecipientType();
$msg->From->Mailbox = $fromAddress;

$msg->Subject = "Test";

$msg->Body = new EWSType_BodyType();

$msg->Body->BodyType = 'HTML'; //Text HTML
$msg->Body->_ = $UAText;

$msgRequest = new EWSType_CreateItemType();
$msgRequest->Items = new EWSType_NonEmptyArrayOfAllItemsType();
$msgRequest->Items->Message = $msg;
$msgRequest->MessageDisposition = 'SendAndSaveCopy';
$msgRequest->MessageDispositionSpecified = true;

$response = $ews->CreateItem($msgRequest);
var_dump($response);

谢谢你,

4

1 回答 1

0

如果它与普通的 Outlook 客户端一起使用,但不是与您的解决方案一起使用,我的第一个检查是比较两封示例电子邮件的标题(一封来自 Outlook,另一封来自您的解决方案)。我认为使用 Outlook 正确设置了内容类型,但没有使用您的解决方案。

因此,您可能希望在您的解决方案中将内容编码设置为 UTF-8。所以我假设 $UAText 里面的内容是一些 HTML 的东西。因此,您可能希望通过以下方式将该部分标记为 UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

看看它是如何工作的。

另外,您可能希望通过以下方式直接在代码中设置编码:

$ews = new ExchangeWebServices($host, $user, $password, ExchangeWebServices::VERSION_2007_SP1);
$msg = new EWSType_MessageType();
$msg->MimeContent = new EWSType_MimeContentType();
$msg->MimeContent->_ = base64_encode("Mime-Version: 1.0\r\n"
    . "From: michael@contoso.com\r\n"
    . "To: amy@contoso.com\r\n"
    . "Subject: nothing\r\n"
    . "Date: Tue, 15 Feb 2011 22:06:21 -0000\r\n"
    . "Message-ID: <{0}>\r\n"
    . "X-Experimental: some value\r\n"
    . "\r\n"
    . "I have nothing further to say.\r\n");
$msg->MimeContent->CharacterSet = 'UTF-8';

注意:这里是关于内容类型编码选项的一个很好的起点。您还可能希望在此处查看官方的 Microsoft howto 。

于 2017-11-03T10:28:13.183 回答