VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

用JMail接收帶附件的郵件,如何得知附件檔名

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
SUNUSER86



註冊時間: 2007-02-03
文章: 14


第 1 樓

發表發表於: 星期四 十月 26, 2017 5:48 pm    文章主題: 用JMail接收帶附件的郵件,如何得知附件檔名 引言回覆

原本使用木瓜的myfll.fll收發郵件
但客戶反映,有時候會有部分郵件收不到,但開啟OUTLOOK就可以收到這被遺落的部分郵件,追蹤了一段時間,毫無頭緒。

藉此機會改用JMAIL收發,但接收郵件獲取附件的檔案名稱,就出現問題,程式碼如下

oPop3=CREATEOBJECT("jmail.pop3")
oPop3.connect("username","password","pop3server")
oCount=oPop3.Count &&獲取郵箱裡的郵件總數
FOR nCount1=1 TO oCount
oMsg=oPop3.Messages.Item(nCount1) &&建立按序號提取郵件信息的對象
* ? oMsg.fromname && 發件人
* ? oMsg.subject &&主題
* ? oMsg.body &&正文
Atts=oMsg.Attachments
nAttCount=Atts.count()
FOR nCount2 = 1 TO nAttCount
oAtts=Atts.Item(nCount2)
attname=oAtts.name
attdata=oAtts.data
ENDFOR
* oPop3.DeleteSingleMessage(nCount1) &&刪除該郵件
ENDFOR
oPop3.Disconnect()
return

每當程式執行到 attname=oAtts.name 就跳開,出現OATTS is not an object.,請教各位先知,哪裡出了問題。
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2057


第 2 樓

發表發表於: 星期五 十月 27, 2017 5:37 pm    文章主題: 引言回覆

原則上. jmail.pop3 是用來收信 , jmail.SMTPMail 是用來寄信的.
你試看看這篇有沒有問題
http://www.tek-tips.com/faqs.cfm?fid=3835

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
SUNUSER86



註冊時間: 2007-02-03
文章: 14


第 3 樓

發表發表於: 星期五 十月 27, 2017 7:50 pm    文章主題: 引言回覆

garfield大大,執行結果,情況一模一樣
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2057


第 4 樓

發表發表於: 星期五 十月 27, 2017 9:23 pm    文章主題: 引言回覆

這篇說 Free 有功能限制
http://www.softking.com.tw/soft/clickcount.asp?fid3=3424

有沒有考慮用winsock
http://vfp.sunyear.com.tw/viewtopic.php?t=27

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
SUNUSER86



註冊時間: 2007-02-03
文章: 14


第 5 樓

發表發表於: 星期五 十月 27, 2017 9:51 pm    文章主題: 引言回覆

我也曾懷疑過功能限制,原先使用Free版本,執行第一行oPop3=CREATEOBJECT("jmail.pop3"),就發生Error,後來更換為Profersional,轉為出現上述問題。

目前正在MAPI或Winsock做選擇,但接收郵件的範例實在太少了,尤其牽扯上附件,案例更少,MAPI有找到一些線索,Winsock還沒頭緒,先嘗試一下MAPI,如各位先進有經驗,請提供指引。
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2057


第 6 樓

發表發表於: 星期五 十月 27, 2017 10:16 pm    文章主題: 引言回覆

剛才提的那一篇的 winsock 測試一下就很好用( FUNCTION SendSmtpEmail ) .
http://vfp.sunyear.com.tw/posting.php?mode=quote&p=585

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
SUNUSER86



註冊時間: 2007-02-03
文章: 14


第 7 樓

發表發表於: 星期五 十月 27, 2017 10:39 pm    文章主題: 引言回覆

可惜沒有( FUNCTION RetrPop3Email ) . Laughing Embarassed
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2057


第 8 樓

發表發表於: 星期六 十月 28, 2017 12:07 am    文章主題: 引言回覆

https://www.berezniker.com/content/pages/visual-foxpro/read-pop3-mail-using-winsock
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
SUNUSER86



註冊時間: 2007-02-03
文章: 14


第 9 樓

發表發表於: 星期一 十月 30, 2017 6:50 pm    文章主題: 引言回覆

經過幾天的探討研究,終於大略完成使用MAPI來接收MS Outlook的郵件資料,
由於接收郵件的範例不多,帶附件的更少,今將程式碼公布如下

* xSes.Downloadmail=.T. &&下載新的郵件
xSes.Signon && xses及xmsg 為表單上的 MAPISession 及 MAPIMessages 物件
xMsg.Sessionid=xSes.Sessionid
* xMsg.FetchSorted = .T.
xMsg.FetchUnreadOnly = .T. &&只取未讀過的郵件
xMsg.Action = 1 &&切換到讀緩衝區

* 開始讀取出信件
xMsg.Fetch
FOR xi=0 TO (xMsg.MsgCount-1) && 讀取每一封信
xMsg.MsgIndex=xi && 指定第幾封信
* ? xMsg.MsgSubject
* ? xMsg.MsgOrigDisplayName
* ? xMsg.MsgOrigAddress
* ? xMsg.MsgDateReceived
* ? xMsg.MsgNoteText
* ? xMsg.MsgRead
* xMsg.Copy
IF xMsg.AttachmentCount=0 && 無附件檔案時
* xMsg.Delete &&刪除該郵件
loop && 讀下一封信
ENDIF
*讀取出所有附件檔案
FOR xj=0 TO (xMsg.AttachmentCount-1)
xMsg.AttachmentIndex=xj &&指定第xj個附件
* ? xMsg.PidTagAttachLongFilename && 顯示長檔名
* ? xMsg.AttachmentName && 顯示檔名
* ? xMsg.AttachmentPathName && 顯示路徑+檔名
* ? xMsg.AttachmentPosition
* ? xMsg.AttachmentType
Copy File (xMsg.AttachmentPathName) To "D:\"+(xMsg.AttachmentName)
next
* xMsg.Delete &&刪除該郵件
NEXT && 處理下一封信件
* xses.downloadmail=.F. &&停止下載新的郵件
xses.signoff
* set default to c:\test
* MESSAGEBOX("完成")

問題一:使用outlook2007,有安全性對話框困擾的解決方式,可以參照
https://support.hpe.com/hpsc/doc/public/display?docId=c02967866&lang=en-us&cc=us

上述網站登錄項目
HKEY_CURRENT_USER\Software\Policies\Microsoft\.......如不存在可改為
HKEY_CURRENT_USER\Software\Microsoft\..............
此方法可完美解決安全性對話框問題

問題二:附件的檔案名稱不支援長檔名,無語問蒼天,搞到最後竟然......期待解答

結論是,接收帶附件的郵件,如果有其他方式,我第一個捨去的一定是MAPI,註冊、安全性對話框、長檔名、原先執行路徑被強佔,問題一個接一個。
尤其是當取得郵件資料,回到資料庫做後續處理,才發覺所有路徑被被強制變更,很不友善的元件。
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1530


第 10 樓

發表發表於: 星期三 十一月 01, 2017 2:31 pm    文章主題: 引言回覆

好奇請教一下,
您是那一類的需求,
需要自己用VFP去讀取信件?
回頂端
檢視會員個人資料 發送私人訊息
SUNUSER86



註冊時間: 2007-02-03
文章: 14


第 11 樓

發表發表於: 星期四 十一月 02, 2017 9:20 pm    文章主題: 引言回覆

上游公司新增訂單或變更訂單內容,都是使用E-Mail,附件內容有一定格式,將該附件解譯後,更新資料庫內容,並回傳郵件告知收悉。
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作