3
我想在電子郵件發件人的時區中獲取收到的日期。使用javax郵件可能嗎? message.getReceivedDate()
在我服務器的時區中返回日期。javax mail發件人時區中的getReceivedDate
我想在電子郵件發件人的時區中獲取收到的日期。使用javax郵件可能嗎? message.getReceivedDate()
在我服務器的時區中返回日期。javax mail發件人時區中的getReceivedDate
據我所知,至少在Java 7中,Date
類擁有(由它自己)沒有原始時區的概念。因此,如果您想訪問郵件的原始時區,則應直接獲取Date
標題:message.getHeader("Date")
。
根據RFC2822,這個頭必須總是存在,必須包含一個時區,並應在當地時間表示。所以你必須解析該值並提取發件人時區。接下來,您只需將getReceivedDate
轉換爲該時區即可。從RFC2822
提取物(日期標題的解析):
orig-date = "Date:" date-time CRLF
date-time = [ day-of-week "," ] date FWS time [CFWS]
day-of-week = ([FWS] day-name)/obs-day-of-week
day-name = "Mon"/"Tue"/"Wed"/"Thu"/
"Fri"/"Sat"/"Sun"
date = day month year
year = 4*DIGIT/obs-year
month = (FWS month-name FWS)/obs-month
month-name = "Jan"/"Feb"/"Mar"/"Apr"/
"May"/"Jun"/"Jul"/"Aug"/
"Sep"/"Oct"/"Nov"/"Dec"
day = ([FWS] 1*2DIGIT)/obs-day
time = time-of-day FWS zone
time-of-day = hour ":" minute [ ":" second ]
hour = 2DIGIT/obs-hour
minute = 2DIGIT/obs-minute
second = 2DIGIT/obs-second
zone = (("+"/"-") 4DIGIT)/obs-zone
如果你能發送郵件旁邊數據的一個額外的數據包,其中將包含發件人EST,那將是一個立即解決。你究竟想要做什麼? – Cartier
當用戶發送郵件時,我會對其進行處理併成功回覆用戶。我還希望在發送原始郵件時包含回覆時間戳 – vishesh
因此,可以將任何額外的數據發送到電子郵件旁邊;你使用自己的SMTP嗎? – Cartier