php imap发送后将消息保存到发送的文件夹

时间:2012-06-18 15:12:28

标签: php imap

我被困了两天。我试图从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示例,但也没有运气。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

摆脱 - 来自你的边界线

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

应该是

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

您的标题中不需要 -