跳轉到主要內容
本教學課程將逐步引導您了解如何使用 PlayFab 的電子郵件範本功能,將帳戶復原電子郵件傳送至玩家的聯絡電子郵件地址,讓玩家重設其密碼。

需求

這是進階教學課程。請確認已符合所有需求,否則您將無法完成本教學課程。
  • 若要使用電子郵件範本傳送自訂電子郵件,您需要擁有自己的 SMTP 伺服器,並具備使用者名稱和密碼。在使用我們的教學課程使用附加元件設定 SMTP 伺服器之前,請確認您有自己的 SMTP 伺服器。
您可以使用 Gmail 進行測試,但 Gmail 限制您每天最多只能傳送 2,000 封電子郵件。
  • 需要具備如何建立玩家的基本知識,因為在呼叫帳戶復原邏輯之前,需要有具備使用者名稱和密碼的玩家。
  • 如果您不熟悉 Game Manager,請閱讀 Game Manager 快速入門,因為電子郵件範本是在其中建立的。
  • 需要具備如何使用玩家設定檔的知識,以確認聯絡電子郵件已新增至玩家的設定檔。請在取得玩家設定檔教學課程中了解如何取得玩家設定檔,並確認您已在遊戲的 Client Profile Options 下允許 Contact email addresses。

步驟 1 - 建立電子郵件範本

我們首先要建立帳戶復原電子郵件範本。
  • 前往 Content。
  • 選取 Email Templates 索引標籤。
  • 選取 NEW EMAIL TEMPLATE 按鈕。
Game Manager - Content - Email Templates 現在新增 New Email Template,依下列方式填寫欄位,並將 Error callback URL 保留空白:
  • Template name:PasswordRecoveryTemplate
  • Template type:Account Recovery
  • Email subject:Password reset requested
  • Email body:(依下列方式輸入)
  • From Name:您想在電子郵件 From 欄位中顯示的名稱。
  • From Email Address:您想在電子郵件 From 欄位中顯示的電子郵件地址。這必須是 SMTP 伺服器允許您用來傳送電子郵件的電子郵件網域。
某些電子郵件伺服器 (例如 Gmail) 會忽略此欄位,並從 SMTP 伺服器所設定的帳戶傳送。
  • Callback URL:密碼復原表單的回呼 URL。表單至少必須包含一個 Password 欄位,供玩家輸入新密碼。

需要注意的幾件事

  • 電子郵件本文中的 $ConfirmationUrl$ 會產生一個自訂 URL,選取該 URL 時,會追蹤使用者已選擇該 URL,然後發出重新導向至 Callback URL。在此案例中,它被插入到錨點標記中。
  • Callback URL 是玩家選取確認 URL 連結後,PlayFab 將重新導向的 URL。它必須是一個託管的 Web 表單,至少包含一個 Password 欄位,以便在本教學課程稍後進行 ResetPassword API 呼叫。
Game Manager - Content - Email Templates - 新電子郵件範本 填寫表單後,選取 SAVE EMAIL TEMPLATE 按鈕,您會被重新導向回顯示電子郵件範本清單的頁面。請記下電子郵件範本的識別碼,因為步驟 4 將會用到。 Game Manager - Content - 電子郵件範本識別碼

步驟 2 - 將使用者名稱、密碼、登入電子郵件和聯絡電子郵件新增至玩家

下一個步驟需要一個現有的玩家帳戶。 我們將使用 AddUsernamePassword 新增使用者名稱、密碼和登入電子郵件。此外,我們會使用 AddOrUpdateContactEmail 將聯絡電子郵件新增至玩家。
玩家設定檔上的聯絡電子郵件欄位與玩家設定檔上的登入電子郵件欄位不同,即使兩者可能包含相同的電子郵件地址。每當您傳送電子郵件給玩家時,它會傳送至聯絡電子郵件地址。

C# 程式碼範例

在下列範例中,我們會登入玩家,然後使用 AddUsernamePassword 新增使用者名稱、密碼和登入電子郵件。接著使用 AddOrUpdateContactEmail 新增聯絡電子郵件。請確認與玩家相關聯的電子郵件地址是您可以存取的地址。

步驟 3 - 確認聯絡電子郵件已新增至玩家的設定檔

接下來,確認聯絡電子郵件已新增至玩家的設定檔。登入 Game Manager,然後前往 Player’s Profile 頁面。您應該會看到該玩家列出的 Contact email。 Game Manager - 玩家設定檔 - 聯絡電子郵件 您也可以呼叫 GetPlayerProfile,並在 PlayerProfileViewConstraints 中將 ShowContactEmailAddresses 設定為 true,以顯示玩家現在擁有我們剛新增的聯絡電子郵件。

步驟 4 - 傳送帳戶復原範本電子郵件

現在,我們將使用步驟 1 中的電子郵件範本識別碼,透過 SendEmailFromTemplate 將驗證電子郵件傳送給我們在步驟 2 中建立的玩家。

C# 程式碼範例

在下列範例中,我們使用 SendCustomAccountRecoveryEmail 傳送帳戶復原電子郵件。

步驟 5 - 檢查電子郵件是否已傳送

最後,我們可以檢查帳戶復原電子郵件是否已傳送。 您可以做的第一件事,是前往玩家的 PlayStream 區域。在 Game Manager 中:
  • 從左側功能表選取 Player。
  • 前往畫面的 PlayStream 區域。
  • 它應該會顯示 Sent Email Event。
Game Manager - Players - PlayStream - 已傳送電子郵件事件 選取事件上的 Info 圖示,應該會顯示類似下列的 JSON。
若要檢查您是否確實收到電子郵件,請前往您在步驟 2 中建立之玩家的電子郵件。應該會有一封類似下列的電子郵件。 已要求重設密碼 - 電子郵件 如果您檢查該電子郵件中的 URL,會看到它看起來類似下列範例。
當玩家選取該 URL 時,會發生三件事:
  1. PlayFab 會產生一個名為 auth_token_validated 的新 PlayStream 事件。這就是您得知玩家已選取電子郵件中該 URL 的方式。您可以使用該事件觸發動作,例如授與玩家金幣或項目。
  2. PlayFab 會傳回一個重新導向 URL,將玩家帶往回呼 URL。在此案例中,它應該是遊戲的網站,其中包含供玩家輸入新密碼的表單。
  3. 重新導向 URL 會在查詢字串中包含一個權杖,看起來類似下列內容。
https://www.example.com/?token=2346241B7C277796。

步驟 6 - 重設玩家的密碼

玩家被導向至回呼 URL 並在表單中填寫新密碼後,您可以使用該資訊以及查詢字串中的權杖,發出 ResetPassword 呼叫。

C# 程式碼範例

在下列範例中,我們根據權杖以及玩家在表單中指定的新密碼,使用 ResetPassword 重設玩家的密碼。

步驟 7 - 檢查密碼是否已重設

最後,使用 LoginWithPlayFab 登入,以驗證玩家已成功重設其密碼。

C# 程式碼範例

在下列 C# 範例中,我們使用 LoginWithPlayFab 以及玩家在步驟 6 中重設的新密碼登入。

結論

本教學課程到此結束!您已了解如何設定 SMTP 伺服器、建立電子郵件範本、傳送帳戶復原電子郵件,以及重設玩家的密碼。 如果您對本教學課程有任何問題或意見反應,請在我們的社群論壇中告訴我們。
最後修改於 2026年10月8日