我使用以下代码从我们的POP3邮件服务器获取邮件。我已经成功取回邮件。我想在服务器上留下邮件的副本。我该怎么做呢
<?php
/* connect to gmail */
$hostname='{mail.xxx.com:110/pop3}INBOX';
$username='yyy.xxx@xxx.com';
$password='xxx_9851';
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
echo "here";
/* grab emails */
$emails = imap_search($inbox,'SUBJECT "hi"');/* if emails are returned, cycle through each... */
//print_r($emails);
if($emails) {
/* begin output var */
$output = '';
/* put the newest emails on top */
rsort($emails);
/* for every email... */
foreach($emails as $email_number) {
/* get information
specific to this email */
$overview = imap_fetch_overview($inbox,$email_number,0);
echo "<pre>";
// print_r($overview);
$message = imap_fetchbody($inbox,$email_number,2);
$header=imap_fetchheader($inbox,$email_number);
//print_r($message);
//print_r($header);
/* output the email header information */
$output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">';
$output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
$output.= '<span class="from">'.$overview[0]->from.'</span>';
$output.= '<span class="date">on '.$overview[0]->date.'</span>';
$output.= '</div>';
/* output the email body */
$output.= '<div class="body">'.$message.'</div>';
$s = imap_fetchstructure($inbox,$email_number);
// print_r ($s->parts);
if (!$s->parts)
{// simple
// getpart($inbox,$email_number,$s,0); // pass 0 as part-number
}
else { // multipart: cycle through each part
foreach ($s->parts as $partno0=>$p){
attachment_to_file($inbox,$email_number,$p,$partno0+1);
}
}
}
非常感谢任何帮助。谢谢你
首先,您使用IMAP代码来获取邮件,所以我假设您的pop3服务器也运行IMAP服务。如果您使用IMAP服务,那么就不需要显式地执行leave a copy of the mail in the server
。这些邮件将保留在服务器上,除非它们被删除或从文件夹移到transh/junk。
同样适用于POP服务。邮件将始终保留在服务器上,除非您发送删除命令。