1

私はこれで2日間立ち往生しています。PHP から imap_append を使用しようとしていますが、今のところうまくいきません。単一の添付ファイルに対してこのコードを実装できましたが、複数の添付ファイルが機能しませんでした。

<?php 
$authhost="{000.000.000.000:993/validate-cert/ssl}Sent"; 

$user="sadasd"; 
$pass="sadasd"; 

if ($mbox=imap_open( $authhost, $user, $pass)) 
{ 
    $dmy=date("d-M-Y H:i:s"); 

    $filename="filename.pdf"; 
    $attachment = chunk_split(base64_encode($filestring)); 

    $boundary = "------=".md5(uniqid(rand())); 

    $msg = ("From: Somebody\r\n" 
        . "To: test@example.co.uk\r\n" 
        . "Date: $dmy\r\n" 
        . "Subject: This is the subject\r\n" 
        . "MIME-Version: 1.0\r\n" 
        . "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n" 
        . "\r\n\r\n" 
        . "--$boundary\r\n" 
        . "Content-Type: text/html;\r\n\tcharset=\"ISO-8859-1\"\r\n" 
        . "Content-Transfer-Encoding: 8bit \r\n" 
        . "\r\n\r\n" 
        . "Hello this is a test\r\n" 
        . "\r\n\r\n" 
        . "--$boundary\r\n" 
        . "Content-Transfer-Encoding: base64\r\n" 
        . "Content-Disposition: attachment; filename=\"$filename\"\r\n" 
        . "\r\n" . $attachment . "\r\n" 
        . "\r\n\r\n\r\n" 
        . "--$boundary--\r\n\r\n"); 

    imap_append($mbox,$authhost,$msg); 

    imap_close($mbox); 
} 
else 
{ 
    echo "<h1>FAIL!</h1>\n"; 
} 

?> 

上記の未加工のコードが機能するようになりましたが、複数の添付ファイルを追加できません。場合によっては、メッセージ本文の base64 がデコードされ、メッセージ本文に多くの奇妙な文字が含まれていました。何かのようなもの

R0lGODlhkAEfAOYAAPSeZPONtdSIu+u2vv/La+5Rj8AhYPvWhOjtkfvi7MRImcjYse5DM6O+dOnl .....

私はすべてのウェブを検索しますが、まだ運がありません。

私は専用サーバーを持っているので、いくつかの procmail+ postfix の例を実装しようとしましたが、うまくいきませんでした。

誰か助けてくれませんか?

4

1 に答える 1

1

-- を境界線から取り除く

. "--$boundary--\r\n\r\n"

する必要があります

. "$boundary\r\n\r\n"

ヘッダーに -- は必要ありません。

于 2012-06-18T15:28:47.967 に答える