導航:首頁 > 程序命令 > imapfetch命令

imapfetch命令

發布時間:2023-03-04 11:01:51

『壹』 求解為何部分IMAP郵箱對imap協議的search命令無法返回正確結果

http://config.mail.163.com/settings/imap/[email protected],這是一個隱藏的設置,要到這里配置才能用163的imap或者pop。

[email protected],這個是你的郵箱地址。xxxx不能是手機號。如果是手機號的話,用其他郵箱名稱。我自己的原來是手機號郵箱,用不了,在前面加m就可以了。或者要自己去設置一個新的郵箱名稱。

『貳』 如何用php里的IMAP函數,實現郵件的發送,希

//以騰訊企業郵箱做了測試
$mailServer="imap.exmail.qq.com";//IMAP主機
$mailLink="{{$mailServer}:143}INBOX";//imagp連接地址:不同主機地址不同
$mailUser='***';//郵箱用戶名
$mailPass='***';//郵箱密碼
$mbox=imap_open($mailLink,$mailUser,$mailPass);//開啟信箱imap_open
$totalrows=imap_num_msg($mbox);//取得信件數
for($i=1;$i<$totalrows;$i++){
$headers=imap_fetchheader($mbox,$i);//獲取信件標頭
$headArr=matchMailHead($headers);//匹配信件標頭
$mailBody=imap_fetchbody($mbox,$i,1);//獲取信件正文
}
/**
*
*匹配提取信件頭部信息
*@paramString$str
*/
functionmatchMailHead($str){
$headList=array();
$headArr=array(
'from',
'to',
'date',
'subject'
);
foreach($headArras$key){
if(preg_match('/'.$key.':(.*?)[ ]/is',$str,$m)){
$match=trim($m[1]);
$headList[$key]=$key=='date'?date('Y-m-dH:i:s',strtotime($match)):$match;
}
}
return$headList;
}

『叄』 POP3/IMAP/SMTP服務是什麼意思

POP3/IMAP/SMTP服務是一套郵件管理服務,其通過POP3、IMAP、SMTP協議的實現。

1、POP3服務

POP3服務是POP3協議的實現。POP3對協議支持「離線」郵件處理。其具體過程是:郵件發送到伺服器上,電子郵件客戶端調用郵件客戶機程序以連接伺服器,並下載所有未閱讀的電子郵件。這種離線訪問模式是一種存儲轉發服務,將郵件從郵件伺服器端送到個人終端機器上,一般是PC機或MAC。

一旦郵件發送到PC機或MAC上,郵件伺服器上的郵件將會被刪除。但目前的POP3郵件伺服器大都可以「只下載郵件,伺服器端並不刪除」,也就是改進的POP3協議。

2、IMAP服務

IMAP服務是IMAP協議的實現。IMAP協議以前稱作交互郵件訪問協議。IMAP是斯坦福大學在1986年開發的一種郵件獲取協議。它的主要作用是郵件客戶端可以通過這種協議從郵件伺服器上獲取郵件的信息,下載郵件等。當前的權威定義是RFC3501。

IMAP協議運行在TCP/IP協議之上,使用的埠是143。它與POP3協議的主要區別是用戶可以不用把所有的郵件全部下載,可以通過客戶端直接對伺服器上的郵件進行操作。

3、SMTP服務

SMTP服務是SMTP協議的實現。SMTP是一個相對簡單的基於文本的協議。在其之上指定了一條消息的一個或多個接收者,然後消息文本會被傳輸。可以很簡單地通過telnet程序來測試一個SMTP伺服器。SMTP使用TCP埠25。要為一個給定的域名決定一個SMTP伺服器,需要使用MXDNS。

(3)imapfetch命令擴展閱讀:

POP3服務常用指令:

1、USER[username]

處理用戶名。

2、PASS[password]

處理用戶密碼。

3、APOP[Name,Digest]

認可Digest是MD5消息摘要。

4、STAT

處理請求伺服器發回關於郵箱的統計資料,如郵件總數和總位元組數。

5、UIDL[Msg#]

處理返回郵件的唯一標識符,POP3會話的每個標識符都將是唯一的。

6、LIST[Msg#]

處理返回郵件數量和每個郵件的大小。

7、RETR[Msg#]

處理返回由參數標識的郵件的全部文本。

8、DELE[Msg#]

處理伺服器將由參數標識的郵件標記為刪除,由quit命令執行。

9、RSET

處理伺服器將重置所有標記為刪除的郵件,用於撤消DELE命令。

10、TOP[Msg#n]

處理伺服器將返回由參數標識的郵件前n行內容,n必須是正整數。

『肆』 請教通過imap收取pop郵件的問題

IMAP,英文全稱 Internet Message Access Protocol(互聯網郵件訪問協議),和POP協議一樣,它也是一種郵件獲取協議,我們可以通過這種協議從郵件伺服器上獲取郵件的信息、下載郵件等。但與POP不同的是,IMAP 是「雙向」的,換句話說,你在電子郵件客戶端或者移動設備進行的操作,都可以自動同步到伺服器上,並可以通過客戶端直接對伺服器上的郵件進行操作。同時,IMAP可以只下載郵件的主題,只有當你真正需要的時候,才會下載郵件的所有內容。如果你是在多種環境下接收郵件,無論是在家裡還是在公司,無論是用客戶端還是手機接收,IMAP都可以幫你及時獲取到最新的郵件。就在前不久,QQ郵箱開通了IMAP服務,這樣一來,往後我們便可以更加輕松自如地在郵件客戶端中收發郵件了。

一、開啟IMAP服務

要想使用該種協議,我們首先要在QQ郵箱中開啟 IMAP 服務,方法很簡單,登錄自己的QQ郵箱,單擊窗口上方的「設置」鏈接,進入到「郵箱設置」窗口,然後點擊其中的「賬戶」標簽頁,最後將下方的「開啟IMAP服務」一項復選框勾中,保存更改便可以了。

二、配置郵件客戶端

目前,支持 QQ 郵箱 IMAP 服務的郵件客戶端有 Foxmail、Outlook Express、Out-look2003 和 Outlook2007等,開通了IMAP 服務之後,我們還需要對具體的郵件客戶端進行一番配置,接下來就以Foxmail為例,跟大家介紹一下如何配置郵件客戶端。

步驟一,打開 Foxmail,首先在「郵箱」菜單中選中「新建郵箱賬戶」命令。

步驟二,此時會打開向導窗口,在其中鍵入電子郵箱地址、密碼、賬戶名稱等信息,單擊「下一步」按鈕。步驟三,這時會彈出「指定郵箱伺服器」對話框,請在「接受伺服器類型」下拉框中選擇「IMAP」一項,「接收郵件伺服器」為「imap.qq.com」,而「發送郵件伺服器」則為「smtp.qq.com」,然後再單擊「下一步」完成配置。如此一番設置之後,往後自己就可以通過IMAP協議在 Foxmail 中收發 QQ 郵箱中的郵件了。

『伍』 如何刪除IMAP郵件伺服器的郵件

一、不顯示刪除標記的郵件設置IMAP後,收取郵件,選中需要刪除郵件,執行刪除命令,會發現不像POP3時一樣直接刪除,而是標記一下,僅僅是標了刪除線而已。在日常查看時,肯定不希望這些標記的郵件顯示出來,執行「視圖→當前視圖→隱藏標記為刪除的郵件」,這時會發現標記有刪除的郵件已經不再顯示了。

二、刪除郵件這里說的刪除是指通過Outlook刪除在伺服器中的郵件,由於默認情況下,在Outlook中刪除IMAP郵箱中的郵件,只是添加刪除線,因此要想真正的刪除郵件就得再多一步操作。執行「→清除→清除所有帳戶中已標記的項目」命令,這時再回到「IMAP視圖」,會發現那些標有刪除線的郵件都被刪除了。

三、自動刪除標記的郵件如果每次刪除郵件都需要先「標記」然後再清除,未免也太麻煩了,因此可以讓Outlook自動清理。執行「編輯→清除→清除選項」命令,在打開的「Internet電子郵件選項」對話框的「常規」標簽中,勾選「聯機切換文件夾時清除項目」復選框,這樣再次刪除郵件時,只需要在不同的郵件夾之間切換一下,Outlook便會自動執行清除命令了。不過如果在離線狀態的話,不會自動清除郵件(主要是因為Outlook想清除也清除不了)。

『陸』 我用python通過imap收取郵件時為什麼能收取

想用python做一個很簡單的接收郵件的功能,只看python的官方doc(http://docs.python.org/2/library/imaplib.html)真的很不好懂,經過google之,探索之,稍微總結一下:

要使用imap接收郵件,當然要導入imaplib拉.
import imaplib

然後按常規的,建立鏈接→登錄
conn = imaplib.IMAP4("imap.xxx.com",143)

conn.login("userName","password")

然後我想查看收件箱的郵件,咋辦呢?要先選擇一個目錄,收件箱默認名稱是"INBOX",IMAP是支持創建文件夾,查看其它文件夾的,如果是自己新建的文件夾,那麼名稱一般會是"INBOX.新建文件夾",不同的郵箱可能表示方式不一樣,如果你不知道的話,那運行conn.list()查看所有的文件夾.
conn.select("INBOX")

選擇後,然後查看文件夾,注意,IMAP的查看其實是一個搜索的過程,IMAP的原始命令是search all(大概的),在python里這么用:
type, data = conn.search(None, 'ALL')

然後返回的是這個收件箱里所有郵件的編號,按接收時間升序排列,最後的表示最近.
search這個很鬼麻煩,因為官方文檔里沒講這個函數的第二個參數怎麼用,於是找了下,可以填的命令有:
http://www.afterlogic.com/mailbee-net/docs/MailBee.ImapMail.Imap.Search_overload_1.html
於是如果我想找Essh郵件的話,使用
type, data = conn.search(None, '(SUBJECT "Essh")')

裡面要用一個括弧,代表是一個查詢條件,可以同時指定多個查詢條件,例如FROM xxxx SUBJECT "aaa",注意,命令要用括弧罩住(痛苦的嘗試)
search第一個參數是charset的意思,填None表示用默認ASCII,
data里獲取到的是一個只有一個字元串元素的數組,包含很多數字,用空格隔開
['1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103'

於是想獲取最後一封的做法是:
msgList = data[0].split()
last = msgList[len(msgList) - 1]

然後把那個郵件獲取回來,用fetch函數
例子:
conn.fetch(last, '(RFC822.SIZE BODY[HEADER.FIELDS (SUBJECT)])')

但是返回的是一串MIME編碼的東東,看不懂,如果能像eml那一操作一封郵件就好了.
方法是有的,用email庫.
import email

然後以RFC822獲取郵件格式,再用email.message_from_string轉換為message對象.就可以當message操作了,(http://docs.python.org/2/library/email.message.html)
type,data=connect.fetch(msgList[len(msgList)-1],'(RFC822)')
msg=email.message_from_string(data[0][1])
content=msg.get_payload(decode=True)

最後content得到就是郵件的內容了

『柒』 php IMAP讀取郵件信息

<?php
$mbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", "[email protected]", "xxxx") or die("can't connect: " . imap_last_error());
$emails = imap_search($mbox,'ALL');
ini_set("max_execution_time",300);
if($emails) {
rsort($emails);
foreach($emails as $email_number) {
$overview = imap_fetch_overview($mbox,$email_number,0);
$pos = explode('@',$overview[0]->from);
$phone = substr($pos[0],-11); // 發件人手機號碼
$struct = imap_fetchstructure($mbox, $email_number);
print_r($struct);
$parts = $struct->parts;
$i = 0;
if (!$parts) { /* Simple message, only 1 piece */
$attachment = array(); /* No attachments */
$content = imap_body($mbox, $email_number);
} else { /* Complicated message, multiple parts */
$endwhile = false; $stack = array(); /* Stack while parsing message */
$content = ""; /* Content of message */
$attachment = array(); /* Attachments */ while (!$endwhile) {
if (!$parts[$i]) {
if (count($stack) > 0) {
$parts = $stack[count($stack)-1]["p"];
$i = $stack[count($stack)-1]["i"] + 1;
array_pop($stack);
} else {
$endwhile = true;
}
}
if (!$endwhile) {
/* Create message part first (example '1.2.3') */
$partstring = "";
foreach ($stack as $s) {
$partstring .= ($s["i"]+1) . ".";
}
$partstring .= ($i+1);

$file_data = imap_fetchbody($mbox, $email_number, $partstring);
$attachment[] = array("filename" =>$parts[$i]->parameters[0]->value,
"filedata" => $file_data
);
if($parts[$i]->subtype == 'JPEG')
{
$file_name = md5(time().rand(5,200)).'.jpg';
file_put_contents($file_name,base64_decode($file_data));
}elseif($parts[$i]->subtype == 'GIF'){
$file_name = md5(time().rand(5,200)).'.gif';
file_put_contents($file_name,base64_decode($file_data));
}elseif($parts[$i]->subtype == 'PLAIN'){
$txt_name = time().rand(5,200).'.txt';
file_put_contents($txt_name,base64_decode($file_data));
}
}
if ($parts[$i]->parts) {
$stack[] = array("p" => $parts, "i" => $i);
$parts = $parts[$i]->parts;
$i = 0;
} else {
$i++;
}
} /* while */
} /* complicated message */
echo "userphone $phone, result:
";
echo "Content: $content

";
echo "Attachments:"; var_mp($attachment);
echo "<br/><br/>---------------------------------------------------------------------<br/><br/>";
}
}
imap_close($mbox);
?>

閱讀全文

與imapfetch命令相關的資料

熱點內容
安卓快手下載怎麼沒有下載到本地 瀏覽:228
怎麼在安卓手機登繪旅人 瀏覽:404
桌面文件全部加密 瀏覽:401
6s怎麼外接u盤需要什麼app 瀏覽:131
linux查看文件許可權命令 瀏覽:685
安卓手游存檔怎麼用 瀏覽:761
linuxyum安裝ftp 瀏覽:690
村委會主任可以推行政命令嗎 瀏覽:102
電腦文件夾封面多張圖片 瀏覽:263
網吧總伺服器叫什麼 瀏覽:922
多個演算法解決同一個問題 瀏覽:455
小車解壓後我的購車發票呢 瀏覽:977
做app開發用什麼雲伺服器 瀏覽:177
linux網卡子介面 瀏覽:985
21歲職高畢業學程序員怎麼學 瀏覽:321
vs如何對單個文件編譯 瀏覽:6
為什麼有的電腦不能安裝python 瀏覽:75
金蝶迷你版加密狗檢測到過期 瀏覽:186
硬體描述語言編譯結果 瀏覽:655
程序員逆天改命 瀏覽:19