2017-10-31 2 views
0

PHPでキリル文字のメールを送信する際の問題。 私の側: サーバーIIS - データベースMsSQL - 電子メールサーバー:Exchange 2010/PHP経由の通信EWS/PHP:キリル文字を含むメールを送信する(ウクライナ語のテキスト)

受信者は、電子メールを受信するための特定のソフトウェアを持つUA所属の企業です。これは、MS Outlook /手動で送信すると動作しています。

私はテキストとして送信しようとしました/私はPHPメーラーを試しました、私はすでにC#で試してみました/すべてはこの特定の会社/ Gmailやホットメールでうまく動作していません//。

$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); 

は、ありがとうございました

+0

最初のステップとして、受信側でサポートされているエンコード方法を確認します。 「メールを受信するための特定のソフトウェア」が電子メールを送信しているエンコードをサポートしていない場合(おそらくユニコード)、私は驚くことはありません。 – apokryfos

答えて

0

あなたのソリューションとの通常のOutlookクライアントでの作業、しかしではないが、私の最初のチェックは、2つのサンプルの電子メール(あなたのソリューションからOutlookから1つずつからヘッダを比較することであろう場合)。私はcontent-typeがあなたの解決策ではなく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: [email protected]\r\n" 
    . "To: [email protected]\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'; 

注:ここでは良いstarting point regarding the content-type encodingオプションがあります。公式のMicrosoftのハウツhereを確認することもできます。

関連する問題