在2019年裡面,如何讓像Outlook的應用軟體同步Synology的聯絡人、行事曆、工作?
2022/11 更新!!
Synology不講武德! 再次更改各項服務URL與PORT,說明文件亦更新不全,多處說明均不相同,同步方法再度變更,還好,還是被小編挖出來了,請看 YouTube 影片示範
VIDEO
Synology NAS
自從
Synology 在2011年9月7日宣布
自家的DSM 3.2 支援CardDAV 與CalDAV 之後,很多論壇以及IT業界的Synology用戶們都躍躍欲試。但是,如果你在Synology官方社群裡面搜尋”caldav”這個關鍵字,長達80頁接近
八年內的搜尋結果 裡面,從DSM 3.2到6.2,看到大部分人都在詢問到底怎樣才能讓同步成功? 直到目前,真正能夠同步成功的僅有CardDAV
聯絡人 同步。因為很少人提問CardDAV同步的相關問題。 在2014年,小編撰寫一篇
如何與Synology CalDAV跟CardDAV同步Outlook連絡人、行事曆、工作 。在過去幾年裡面,Synology一直在很負責地更新自家的DSM到目前的
6.2 版本。四年多過去了,讓我們再次看看Synology NAS提供的CalDAV及CardDAV服務是否還可以用? 對了,如果你是
Baikal 用戶,要確定
Baikal伺服器 是否還可以在較新版本的DSM上面運行? 如果目前你的Baikal伺服器運行正常,則可以無視更新DSM版本。如果要做實驗,要確定你真的懂其中相關資料庫、php、apache等等的眉眉角角。在四年多前的文章裡面也有提到如何讓Outlook同步運行在Synology上面的Baikal伺服器。如果沒有看過,請翻一翻舊文章溫古知新。
過去曾經能用的同步工具 在
EVO Collaborator for Outlook 從2014年開始支援與Synology同步聯絡人、行事曆、工作 之後,一些同類型的同步工具軟體也逐漸開始支援,例如:
gSyncit 。在過去幾年的某個舊DSM版本的時候,這些同步工具軟體都可以正常同步。 就目前來說,最新版本的gSyncit已經
無法偵測伺服器URL ,回傳一個
(404) Not Found 的錯誤信息。
gSyncit 404 Not Found error
關於Synology的這個問題,小編寫信給EVO團隊提問,得到的回覆是: "就在今年初,我們一個用戶來信提問Outlook無法與Synology的CardDAV伺服器同步行事曆與工作。對於此問題,我們也實驗出來一樣的結果。所以我們針對此問題找出解決辦法以確保用戶可以同步。就在幾天前,
這個問題已經解決 。"
從Synology官方知識庫來的信息。。。 不知道在哪裡聽到這個說法? 如果一個軟體用戶提報一個問題,其實其背後有一千個用戶也同時會有一樣的問題。只是他們沒有提報罷了。 基於上述的說法以及在Synology官方社群論壇上面討論CalDAV無法同步的熱烈,實際上有
很多 Synology用戶都在等一個解決方案。哈囉,群暉科技! 快點醒過來解決問題吧! 根據Synology官方知識庫的教學 “
如何將 Synology Calendar 與其他 CalDAV 用戶端同步? ”,同步行事曆應該是很簡單的課題。同時,另外一篇”
如何使用 Synology NAS 架設行事曆伺服器 ”也提供設定CalDAV用戶端的步驟。如果你按照這些教學去實作,結果是不會成功的。
Synology WebDAV & Calendar App
如果你查看
Synology DSM介面 ,你會看到有兩個地方可以
建立CalDAV分享URL 。一個是在NAS內建的行事曆App:
Calendar App裡面的CalDAV Account設定
另外一個則是在WebDAV app:
WebDAV 新增行事曆
官方知識庫也有提到這兩個地方。就如上面所說的,實作是行不通的。 下面是官方知識庫對於內建行事曆App顯示Calendar URL的截圖:
內建行事曆產生的URL
下面是官方知識庫對於WebDAV URL顯示Calendar URL的截圖:
WebDAV產生的URL
我們發現的真相是。。。 理論上,就同一個CardDAV帳號來說,內建行事曆App跟WebDAV App裡面的行事曆應該要一樣,不應該是分開的。不論你在哪裡存取行事曆資料,應該看到一樣的東西。 對於上述狀況,也許舊版DSM是正常的。但是目前已經不可考究。就現在的DSM 6.2來說,經過實驗證明,兩個App的行事曆是分開獨立的。同時,在找出解決辦法之後,我們確定WebDAV App的行事曆經過一些修正之後才可以提供同步之用。
解決問題,繼續同步 我們花了很多時間找出官方知識庫跟實作上面步驟的差別,並對其URL、路徑、主機名稱,連接埠等等作差異比較之後,我們在數個CalDAV用戶端軟體上面已經同步成功。 我們先列出完全可用的CalDAV URL。然後我們再將其與知識庫提供的URL作比較。下面是完全可用的URL:
非SSL: http://<server_hostname_or_ip>:port/homes/<user_account>/<calendar_folder>/
SSL: https://<server_hostname_or_ip>:port/homes/<user_account>/<calendar_folder>/
我們實驗裡面實際使用的URL:
非SSL: http://junkyard2019.ddns.net:5005/homes/junkadmin/calendar/
SSL: https://junkyard2019.ddns.net:5006/homes/junkadmin/calendar/
在DSM 6.2內建行事曆App 實作產生的URL:
Synology內建行事曆URL路徑
我們先把主機名稱擺一邊,直接比對上圖與實際可用的URL路徑。經過瀏覽Synology NAS的樹狀路經後,完全找不到圖中的caldav目錄名稱。也就是說,圖中的URL路徑是完全不可用的。就算可以用,也只能在行事曆App裡面有效,無法做同步之後。
WebDAV App提供的URL路徑:
Synology WebDAV提供的URL路徑
官方知識庫示範的CalDAVURL路徑
現在,我們來比對完全可用的URL、DSM 6.2上面實作產生的URL、官方知識庫提供的WebDAV URL路徑。同樣地,把主機名稱擺一邊。DSM 6.2的版本完全正確。但是,除非把鼠標停留在Location底下,否則根本不會出來。一般使用者沒有注意到的話,應該只會專注在KB上面的教學。再來,兩個WebDAV版本差別在於資料夾路徑。官方知識庫的路徑是:
實作產生的路徑:
/homes/<user_account>/<calendar_folder>
比較之後發現路徑上的差異是造成使用者們無法同步Synology CalDAV服務主要原因。同步工具軟體們按照原先舊的
/web/Calendar/<calendar_folder> 自動偵測法則並無法偵測到新版的URL路徑。過去幾年中,舊版的路徑偵測都是可以用的,但是新版卻不可以,這只能說明群暉科技的官方知識庫的小編有點偷懶喔。
與Synology CardDAV服務同步
Synology DSM CardDAV 伺服器
在Synology NAS DSM上面CardDAV服務的設定很簡單。只有一個地方可以做連接埠的設定。
Synology CardDAV 設定介面
目前完全可用的CardDAV URL:
非SSL: http://<server_hostname_or_ip>:port/addressbooks/users/<user_account>/addressbook/
SSL: https://<server_hostname_or_ip>:port/addressbooks/users/<user_account>/addressbook/
如果逐字比較,我們可以發現上面的URL格式跟先前2014年提供的EVO Collaborator for Outlook所用的格式一模一樣。在官方知識庫裡,只有兩頁提到如何做DSM裡面相關參數的設定。完全沒有針對iOS、macOS、Thunderbird、Outlook等等用戶端相關軟體的設定教學。這是蠻可惜的。
與Synology CardDAV伺服器同步的一些問題
狀況 #1 這是一個蠻有意思的狀況。大部分郵件軟體包含Thunderbird、Outlook、iOS Mail等等 ,裡面聯絡人的地址區塊把街道名、城市、區域、國家、郵遞區號等等儲存在各自的項目中,如下圖:
Outlook聯絡人地址項目
但是,當聯絡人資料同步至Synology NAS以後,全部的項目都會被併至街道名項目裡面,如下圖:
Synology地址合併為一行
當同步工具偵測上述的合併動作之後,會把這些變更同步回本地端的聯絡人。看官們可能會馬上瘋掉。為了避免悲劇的發生,絕對不要在Synology上面做任何修改動作。
同步過後Outlook地址變成一行
狀況 #2 如果使用同步工具的郵件軟體是Outlook,在聯絡人的電話分類清單中,不要使用主要(Primary)類別來儲存電話號碼。
Outlook 電話 Primary
在另外一端的Synology NAS上面,不要使用
Telephone 跟
Preferred 兩種類別來儲存號碼。
在我們的實驗中,會發生下列諸多的問題: 1. 當
Primary 類別電話號碼被同步到Synology NAS以後,一開始會被分類到
Telephone 。如果在NAS上面修改這筆電話,後續的同步結束以後,該筆在Outlook上面的Primary類別電話號碼會消失。 2. 建立在Synology NAS上面Telephone類別電話號碼不會被同步到Outlook上面。 3.
Preferred 類別電話號碼是會被同步到Outlook上面,並且會以Primary類別存在。但是,該筆Primary類別電話號碼又會被同步回Synology上面並以Telephone類別項目的形式存在。這時候,#1的狀況又會再次發生並造成Primary電話號碼的消失。 4. 當Synology上面Telephone跟Preferred類別電話號碼都存在的狀況下,Preferred電話號碼照道理來說會跟Outlook上面的Primary電話號碼同步並一致。但是,實際狀況則是Preferred電話號碼會不見,Primary電話號碼又會被存入Telephone分類的電話號碼中。再來,又會回到#1的狀況。 上述的實驗最後會變成一種
不會結束的迴圈 。因此,為避免造成不必要的資料流失,不要使用這三個電話類別以及其他籠統名目的電話類別。
在不同軟體/平台上面與Synology CalDAV跟CardDAV同步 讓我們來看看是否同步工具軟體/插件是否能勝任在不同平台上面做同步的工作
Outlook與Synology CalDAV跟CardDAV同步 EVO Collaborator for Outlook 可以經過一次設定就輕鬆做到同步CalDAV行事曆、工作 跟CardDAV聯絡人的課題。相容的平台是
Outlook 2007 、
2010 、
2013 、
2016 、
2019 跟
Office 365 。下面是設定的步驟:
打開Outlook。
點擊Configure Profile(s) 。
Configure Profile(s)
典籍左下角的Profile #21 。
點擊Profile #21
在上方依照先前提供的格式輸入Synology NAS的主機名稱 。
輸入伺服器主機名URL
透過非SSL同步: https:/<server_hostname_or_ip>:8008
透過SSL同步: https://<server_hostname_or_ip>:8443
輸入帳號 及密碼 。
輸入帳號及密碼
點擊下方的TEST 之後,聯絡人、行事曆、工作的伺服器URL 就會自動偵測並在URL空白欄為自動填入。
點擊TEST按鈕
又,若是Synology上面有多個行事曆(日曆)或工作,點擊上一個步驟中URL右手邊的資料夾圖案 即可從跳出來的視窗中選擇。
多行事曆清單
點擊下方的Apply 儲存設定。
注意事項:
為了讓自動偵測 能夠正常運作,所有非SSL或SSL使用的連接埠必須使用Synology提供的預設值:
CardDAV: 非SSL: 8008 / SSL: 8443
CalDAV: 非SSL: 5005 / SSL: 5006
同時,在輸入主機名稱的時候,最後面的連接埠一定要輸入 。非SSL需要輸入”:8008 ”。SSL需要輸入”:8443 ”。
若是因為某些考量,CalDAV跟CardDAV的連接埠必須使用非預設值的連接埠號碼,則需要手動輸入URL。此時,將Server Hostname空間保留空白 然後按照先前講到的URL規則在伺服器URL區塊來手動輸入URL 。完成之後,同樣點擊TEST 做測試,然後點擊Apply 儲存設定。
macOS與Synology CalDAV跟CardDAV同步 一直以來,很多人macOS在建立CardDAV跟CalDAV帳戶的時候遇到”
Unable to verify account name or password. ”的問題。因為無法設定CalDAV帳戶,所以連同步都談不上。我google這個信息,找到很多答案,應該是跟
伺服器憑證有關 。 小編針對這個問題做了一個實驗供看官做參考。在這個實驗的下面三種狀況裡面,我嘗試在Mojve上面建立CardDAV跟CalDAV帳號:
Synology上面有預設Synology自己簽署(Self-signed) 的憑證。
在Synology上面匯入第三方自己簽署 的憑證。
在Synology上面匯入CA簽署 的憑證。
在第一個跟第二個狀況裡面嘗試建立帳戶的時候,不論是透過
手動 或是
進階模式 ,大多數機會都會出現上面這個
無法驗證帳戶名跟密碼的信息 。但是在第三個狀況,透過進階模式,每次建立帳戶都可以成功。 然而在測試第一種跟第二種狀況的時候,偶而有一個信息跳出來”
Internet Accounts (System Preferences) can’t verify the identity of the server “junkyard2019.ddns.net” ”。我就聯想到如果讓自己簽署的憑證在macOS底下
永遠受信任 ,應該就沒有問題了。我嘗試了,也成功了。只要把憑證匯入macOS底下並永遠信任它,不論哪一種狀況下建立CardDAV跟CalDAV帳號都沒有問題。 現在,我來總結一下在建立DAV帳戶之前有哪些步驟要先做?
如果要使用Synology自己簽署的憑證,將該憑證匯出至macOS。
在Synology NAS底下把憑證匯出到一個crt憑證檔案。
匯出crt憑證檔案
將此crt憑證檔案在macOS匯入。
在macOS匯入剛剛匯出的憑證
在Keychain Access 裡面左下角的Certificate 設定中選取該憑證下拉選單的Get Info,點擊並展開Trust ,然後在下拉選單中選擇Always Trust 。
點擊憑證帶出選單並點擊Get Info
點擊Always Trust取代系統預設值
如果要使用現有CA簽署的憑證,將該憑證匯入至Synology。
如果手上沒有CA簽署的憑證,可以按照此連接的教學 取得。
隨後,點擊Control Panel/Security 。
Synology 的Control Panel / Security
點擊Certificate 分頁。
Certificate分頁
點擊Add 。
點擊Add然後Add a new certificate
參考上面的截圖,點擊Add a new certificate 然後Next 。
點擊Import certificate 然後Next 。
匯入憑證
點擊Browse 來瀏覽存放憑證檔案的資料夾。
瀏覽憑證檔案資料夾
參考上面的截圖,分別匯入Private Key , Certificate 跟Intermediate certificate ,然後點擊OK 。
當上面的步驟完成之後,在先前Synology DSM的憑證分頁點擊
Configure ,將下拉選單中CA簽署或自己簽署的憑證指派給
CardDAV Server 和
WebDAV Server 。
指派憑證給CardDAV/WebDAV伺服器
再來,繼續完成設定macOS的動作:
在macOS打開System Preferences / Internet Accoutns 。
macOS的System Preferences / Internet Accounts
點擊Add Other Account… :
點擊Add Other Accounts...
如要設定CardDAV帳號,點擊CardDAV account 。
如要設定CalDAV帳號,點擊CalDAV account 。
從Account Type 的下拉選單中選擇Advanced ,然後輸入:
Account Type 選擇Advanced
User Name , 範例: junkadmin
Password , 範例: ********
Server Address :
格式: server_host.domain.com
範例: junkyard2019.ddns.com
Server Path :
如要設定CardDAV:
格式: /addressbooks/users/<username>/addressbook/
範例: /addressbooks/users/junkadmin/addressbook/
如要設定CalDAV:
格式: /homes/<username>/<calendar_folder>/
範例: /homes/junkadmin/appointment/
Port :
8443 for CardDAV
5006 for CalDAV
Use SSL : 保持打勾
CardDAV設定範例
CalDAV設定範例
添加CardDAV跟CalDAV帳號完成
最後,點擊Sign In繼續登入。
下面為同步結果的截圖:
macOS聯絡人同步結果
macOS行事曆同結果
iOS (iPhone & iPad) 與Synology CalDAV跟CardDAV同步 在過去幾年,蘋果的iOS不論是
iPhone 或是
iPad 一直以來在
CalDAV 、
CardDAV 、
Exchange 以及市面上其他同類型帳戶方面的建置以及同步是最合拍的。在下面的實驗裡面,我們測試安裝最新版本
iOS 12.2 的
iPhone XS 。 之前,我不記得是哪個版本,好像是iOS 10或11,蘋果開始強制性地要求此類帳戶建置以、連線及同步必須透過
SSL/TLS協議 。我個人覺得這樣子比較好。畢竟不是每台伺服器都會安裝SSL憑證也不是每個人都要透過SSL連線。就目前的iOS 12.2,
非SSL連線仍然行不通 。 在CardDAV方面,當我輸入伺服器IP或主機名稱(無須輸入連接埠)、帳戶名、密碼之後,iOS非常迅速的偵測到伺服器URL。一下子就設定完畢。
在CalDAV方面,由於iOS無法偵測到正確的伺服器URL,這裡需要調整一些參數才可以搞定:
在iPhone上面,點進 Settings/Password & Accounts。
iPhone的Settings / Passwords & Accounts
往下拉到Add Account並點進去。
iPhone的Add Account
點進Other。
點進去Other
點進Add CalDAV Account。
點擊Add CalDAV Account
在輸入伺服器主機名稱、帳戶名、密碼之後,點右上角的Next。
輸入伺服器、帳號、密碼
跳出”Cannot Connect Using SSL”時,點Cancel。然後再點OK繼續。
無法透過SSL連結
無法確認帳戶資料
點在Advaned Settings。
進入Advanced Settings做微調
照以前來說,iOS通常都能偵測到完整的CalDAV伺服器URL,然後不用再做任何設定即可順利建置帳號。針對Synology的CalDAV服務,這部分則沒有辦法做到。所以我們只能按照先前提到的URL生成手法來手動補上完整的伺服器URL。範例如下:
https://junkyard2019.ddns.net:5006/homes/junkadmin/appointment
修改Account URL
接下來點前一步驟截圖中左上角的< CalDAV 。
點右上角的Next 繼續。
點擊右上角的Next
接下來會的頁面會出現完成建置才會有的打勾,然後下一個畫面中可以開啟或關閉行事曆或工作的選項。
CalDAV帳號設定完成,打勾表示確認
最後,點右上角的Save儲存設定。
點在右上角Save儲存設定
只要透過一些微調,還是可以讓iOS裝置與Synology NAS同步聯絡人、行事曆、工作。
Thunderbird與Synology CalDAV跟CardDAV同步 在Thunderbird底下, Lightning插件可以用於同步Synology的CalDAV行事曆。設定步驟如下:
打開Thunderbird 並確認是否已經更新到目前最新 的60.5.3版。
Thunderbird 官網
滑鼠右鍵點在行事曆區塊,然後點選New Calendar… 。
新行事曆選單
點擊On the Network 選項,然後點擊Next 。
添加行事曆 - On the Network
點擊Caldav 並輸入按照先前提到的URL生成手法產生的伺服器URL,然後點擊Next
https://junkyard2019.ddns.net:5006/homes/junkadmin/appointment/
點選CalDAV,輸入伺服器URL
輸入行事曆名稱還有點選電子郵件供會議邀請用途,然後點擊Next 。
輸入行事曆名稱、輸入電子郵件地址供會議通知使用
在跳出來的Add Security Exception 視窗裡面,點擊Confirm Security Exception 。
確認憑證例外
此時,在新建立的行事曆上面點擊滑鼠右鍵,在下拉選單中,點選Synchronize做 同步。
點擊Synchronize Calendars
在跳出來的Authentication Required 的視窗裡面,輸入帳戶名 及密碼 ,然後點擊OK 。
輸入帳戶名、密碼做認證
點擊Finish 完成設定。
行事曆設定結束
最後,同步完成。
行事曆同步完成
在CardDAV方面,SOGo connector for Thunderbird可以拿來同步Synology的CardDAV聯絡人。設定步驟如下:
打開Thunderbird並確認SOGo connector for Thunderbird 已經安裝。在SOGo connector官網 點擊下面畫面圈起來的60.0.2完成下載的動作。
下載SOGo Connector for Thunderbird
在Thunderbird裡面打開Address Book 。
打開Address Book
點擊左上角File 然後New -> Remote Address Book 。
打開 File / New / Remote Address Book
在跳出來的視窗裡面,輸入連絡簿名稱 並輸入按照先前提到的URL生成手法產生的伺服器URL ,然後點擊OK 。
https://junkyard2019.ddns.net:8443/addressbooks/users/junkadmin/addressbook/
輸入行事曆名稱以及伺服器URL
在跳出來的Add Security Exception 視窗裡面,點擊Confirm Security Exception 。
確認憑證例外
此時,在新建立的連絡簿上面點擊滑鼠右鍵,在下拉選單中,點選Synchronize 做同步。
點選Address Book然後點擊Synchronize同步
在跳出來的Authentication Required 的視窗裡面,輸入帳戶名 及密碼 ,然後點擊OK。
輸入帳戶名、密碼做認證
最後,同步完成。
聯絡人同步完成
關於Synology CalDAV跟CardDAV伺服器功能的一些小編感想 Synology提供小到個人、大到企業的NAS解決方案。當然啦,可以下載的一卡車模組化App真的有幫老闆省一筆錢,例如這個CalDAV跟CardDAV伺服器功能就可以免去再建置一台專職的伺服器。但是,我先前指出來的一些小問題例如: 行事曆app的行事曆資料夾跟WebDAV App裡面的行事曆資料夾無法整合、聯絡人裡面的地址區塊的錯亂、官方知識庫小編對於CalDAV伺服器URL小偷懶沒有做更新等等難免有點小困擾。扣除這些小問題,還是能夠透過小撇步還有修改URL格式進而達到讓用戶端同步的目的。其實。。。也不差啦~!
非常不错!!!
回覆刪除