本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Cognito 使用者集區的電子郵件設定
應用程式中的某些事件可能會導致 Amazon Cognito 透過電子郵件傳送給使用者。例如,如果您將您的使用者集區設定成需要電子郵件驗證,則當使用者註冊您的應用程式以取得新帳戶,或是重新設定其密碼時,Amazon Cognito 就會傳送電子郵件。視發出電子郵件的動作而定,此電子郵件將包含驗證碼或臨時密碼。
若要處理電子郵件傳送,您可以使用下列任一選項:
-
內建於 Amazon Cognito 服務的預設電子郵件組態。
您可以在建立使用者集區之後變更傳遞選項。
Amazon Cognito 會傳送電子郵件訊息給您的使用者,其中包含他們可以輸入的程式碼或可以選擇URL的連結。下表顯示可產生電子郵件訊息的事件。
訊息選項
活動 | API 操作 | 傳遞選項 | 格式選項 | 可自訂 | 訊息範本 |
---|---|---|---|---|---|
忘記密碼 | ForgotPassword, AdminResetUserPassword | 電子郵件、 SMS | code | 否 | N/A |
邀請 | AdminCreateUser | 電子郵件、 SMS | code | 是 | 邀請訊息 |
自我註冊 | SignUp, ResendConfirmationCode | 電子郵件、 SMS | 程式碼、連結 | 是 | 驗證訊息 |
電子郵件地址或電話號碼驗證 | UpdateUserAttributes, AdminUpdateUserAttributes, GetUserAttributeVerificationCode | 電子郵件、 SMS | code | 是 | 驗證訊息 |
多重要素驗證 (MFA) | AdminInitiateAuth, InitiateAuth | Email1、SMS、身分驗證器應用程式 | code | 是2 | MFA 訊息 |
1 需要進階安全功能和 Amazon SES電子郵件組態 。
2 對於 SMS和電子郵件訊息。
電子郵件訊息的 Amazon SES費用。如需詳細資訊,請參閱 Amazon SES定價。
若要進一步了解電子郵件 MFA,請參閱 SMS 和電子郵件訊息 MFA。
預設電子郵件組態
Amazon Cognito 可以使用其預設電子郵件組態來為您處理電子郵件交付。使用預設選項時,Amazon Cognito 會限制每天為使用者集區寄送的電子郵件數量。如需服務配額的資訊,請參閱 Amazon Cognito 的配額。處理一般生產環境時,預設的電子郵件限制低於需要的傳送數量。若要啟用更高的交付量,您可以使用 Amazon SES電子郵件組態。
使用預設組態時,您可以使用由 AWS 管理的 Amazon SES 資源來傳送電子郵件訊息。Amazon SES 新增電子郵件地址,將硬退信傳回帳戶層級禁止名單或全域禁止名單。如果稍後無法交付的電子郵件地址變成可交付,則在使用者集區設定為使用預設組態時,您無法控制從禁止清單中移除該電子郵件地址。電子郵件地址可以無限期保留在 AWS受管禁止名單上。若要管理無法遞送的電子郵件地址,請使用您的 Amazon SES電子郵件組態搭配帳戶層級禁止名單,如下一節所述。
使用預設電子郵件組態時,您可以使用下列其中一個電子郵件地址作為FROM地址:
-
預設的電子郵件地址是 no-reply@verificationemail.com。
-
自訂的電子郵件地址。您必須先與 Amazon 進行驗證,SES並授予 Amazon Cognito 使用此地址的許可,才能使用您自己的電子郵件地址。
Amazon SES電子郵件組態
您的應用程式可能需要超過預設選項可用的更高傳送數量。若要增加可能的交付量,請將 Amazon SES 資源與使用者集區搭配使用,以傳送電子郵件給使用者。當您使用自己的 Amazon SES組態傳送電子郵件訊息時,您也可以監控電子郵件傳送活動。
您必須先透過 Amazon 驗證一或多個電子郵件地址或網域,才能使用 Amazon SES組態SES。使用已驗證的電子郵件地址,或已驗證網域的地址,做為您指派給使用者集區FROM的電子郵件地址。當 Amazon Cognito 傳送電子郵件給使用者時,它會SES為您呼叫 Amazon 並使用您的電子郵件地址。
當您使用 Amazon SES組態時,適用下列條件:
-
使用者集區的電子郵件傳遞限制與 中 Amazon SES 驗證的電子郵件地址適用的限制相同 AWS 帳戶。
-
您可以使用 Amazon 中的帳戶層級禁止名單來管理無法遞送的電子郵件地址的訊息SES,該名單會覆寫全域禁止名單。當您使用帳戶層級禁止名單時,電子郵件退信會影響您的帳戶做為寄件者的評價。如需詳細資訊,請參閱Amazon Simple Email Service 開發人員指南中的使用 Amazon SES帳戶層級禁止名單。
Amazon SES電子郵件組態區域
您建立使用者集區 AWS 區域 的位置,對於使用 Amazon 設定電子郵件訊息有三項需求之一SES。您可以從與使用者集區SES相同的 Amazon、包括相同 區域的多個區域或一或多個遠端區域傳送電子郵件訊息。為了獲得最佳效能,當您有 選項時,請在與使用者集區相同的區域中,傳送具有 Amazon SES 驗證身分的電子郵件訊息。
Amazon SES已驗證身分的區域需求類別
- 僅限區域內
-
您的使用者集區可以傳送與使用者集區相同且已驗證身分 AWS 區域 的電子郵件訊息。在沒有自訂
FROM
電子郵件地址的預設電子郵件組態中,Amazon Cognito 會在相同區域中使用no-reply@verificationemail.com
已驗證的身分。 - 向下相容
-
您的使用者集區可以在相同 AWS 區域 或下列其中一個替代區域中,傳送具有已驗證身分的電子郵件訊息:
-
美國東部 (維吉尼亞北部)
-
美國西部 (奧勒岡)
-
歐洲 (愛爾蘭)
此功能支援您在服務啟動時為符合 Amazon Cognito 需求而建立的使用者集區資源的連續性。該期間的使用者集區只能傳送有限數量 中已驗證身分的電子郵件訊息 AWS 區域。在沒有自訂
FROM
電子郵件地址的預設電子郵件組態中,Amazon Cognito 會在相同區域中使用no-reply@verificationemail.com
已驗證的身分。 -
- 替代區域
-
您的使用者集區可以在使用者集區區域之外的替代 中,傳送具有已驗證身分 AWS 區域 的電子郵件訊息。當 Amazon Cognito 可用的區域中SES無法使用 Amazon 時,就會發生此組態。 Amazon Cognito
替代區域中已驗證身分的 Amazon SES傳送授權政策必須信任原始區域的 Amazon Cognito 服務主體。如需詳細資訊,請參閱授予使用預設電子郵件組態的許可。
在其中一些區域中,Amazon Cognito 會將電子郵件訊息分割為兩個備用區域,以用於 的預設電子郵件組態
COGNITO_DEFAULT
。在這些情況下,若要使用自訂FROM
電子郵件地址,Amazon 為每個替代區域中已驗證身分SES傳送授權政策必須信任原始區域的 Amazon Cognito 服務主體。如需詳細資訊,請參閱授予使用預設電子郵件組態的許可。DEVELOPER
在這些區域中使用 Amazon SES電子郵件組態時,您必須在第一個列出的區域中使用已驗證的身分,並將其設定為信任使用者集區區域中的 Amazon Cognito 服務主體。例如,在中東 (UAE) 的使用者集區中,設定歐洲 (法蘭克福) 的已驗證身分以信任cognito-idp.me-central-1.amazonaws.com
。在沒有自訂FROM
電子郵件地址的預設電子郵件組態中,Amazon Cognito 在每個區域中使用no-reply@verificationemail.com
已驗證的身分。
注意
在下列條件組合下,您必須在區域元素中指定EmailConfiguration具有萬用字元的 SourceArn
參數,格式為 arn:
。這可讓您的使用者集區在兩個 中,在 AWS 帳戶 中傳送具有相同已驗證身分的電子郵件訊息 AWS 區域。${Partition}
:ses:*:${Account}
:identity/${IdentityName}
-
您的 EmailSendingAccount 是
COGNITO_DEFAULT
。 -
您想要使用自訂
FROM
地址。 -
您的使用者集區會在替代區域 中傳送電子郵件。
-
您的使用者集區在下列 Amazon 支援區域的資料表中指定了第二個1備用區域。 SES
如果您以程式設計方式使用 AWS SDK、Amazon Cognito API或 AWS CDK、 或 AWS CloudFormation建立使用者集區CLI,您的使用者集區會傳送具有 Amazon SES身分的電子郵件訊息,該身分是 為使用者集區EmailConfiguration指定的SourceArn
參數。Amazon SES身分必須佔用支援的 AWS 區域。如果您的 EmailSendingAccount
是 COGNITO_DEFAULT
並且您未指定 SourceArn
參數,Amazon Cognito 會使用您用於建立使用者集區的區域中的資源,以 no-reply@verificationemail.com
傳送電子郵件。
下表顯示您可以在 AWS 區域 其中將 Amazon SES 身分與 Amazon Cognito 搭配使用的 。
使用者集區區域 | 區域選項 | Amazon SES支援的 區域 |
---|---|---|
美國東部 (維吉尼亞北部) |
向下相容 |
美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
美國東部 (俄亥俄) |
向下相容 |
美國東部 (俄亥俄)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
美國西部 (加利佛尼亞北部) |
僅限區域內 |
美國西部 (加利佛尼亞北部) |
美國西部 (奧勒岡) |
向下相容 |
美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
加拿大 (中部) |
向下相容 |
加拿大 (中部)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
加拿大西部 (卡加利) |
替代區域 |
加拿大 (中部)、美國西部 (加利福尼亞北部)1 |
亞太區域 (東京) |
向下相容 |
亞太區域 (東京)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
亞太區域 (香港) |
替代區域 |
亞太區域 (新加坡)、亞太區域 (東京)1 |
亞太區域 (首爾) |
向下相容 |
亞太區域 (首爾)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
亞太區域 (孟買) |
向下相容 |
亞太區域 (孟買)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
亞太區域 (海德拉巴) |
替代區域 |
亞太區域 (孟買)、亞太區域 (新加坡)1 |
亞太區域 (新加坡) |
向下相容 |
亞太區域 (新加坡)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
亞太區域 (悉尼) |
向下相容 |
亞太區域 (雪梨)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
亞太區域 (大阪) |
僅限區域內 |
亞太區域 (大阪) |
亞太區域 (雅加達) |
僅限區域內 |
亞太區域 (雅加達) |
亞太區域 (墨爾本) |
替代區域 |
亞太區域 (雪梨)、亞太區域 (新加坡)1 |
歐洲 (愛爾蘭) |
向下相容 |
美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
歐洲 (倫敦) |
向下相容 |
歐洲 (倫敦)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
Europe (Paris) |
僅限區域內 |
Europe (Paris) |
歐洲 (法蘭克福) |
向下相容 |
歐洲 (法蘭克福)、美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) |
歐洲 (蘇黎世) |
替代區域 |
歐洲 (法蘭克福)、歐洲 (倫敦)1 |
歐洲 (斯德哥爾摩) |
僅限區域內 |
歐洲 (斯德哥爾摩) |
歐洲 (米蘭) |
僅限區域內 |
歐洲 (米蘭) |
歐洲 (西班牙) |
替代區域 |
歐洲 (巴黎)、歐洲 (斯德哥爾摩)1 |
Middle East (Bahrain) |
僅限區域內 |
Middle East (Bahrain) |
中東 (UAE) |
替代區域 |
歐洲 (法蘭克福)、歐洲 (倫敦)1 |
南美洲 (聖保羅) |
僅限區域內 |
南美洲 (聖保羅) |
以色列 (特拉維夫) |
僅限區域內 |
以色列 (特拉維夫) |
非洲 (開普敦) |
僅限區域內 |
非洲 (開普敦) |
1 用於具有預設電子郵件組態的使用者集區。Amazon Cognito 會在每個區域中具有相同電子郵件地址的已驗證身分之間分發電子郵件訊息。若要使用自訂FROM
地址,EmailConfiguration
請使用格式為 的 SourceArn
參數來設定 arn:
。${Partition}
:ses:*:${Account}
:identity/${IdentityName}
為您的使用者集區設定電子郵件
完成下列步驟,為您的使用者集區設定電子郵件設定。根據您使用的設定,您可能需要 Amazon SES、 AWS Identity and Access Management (IAM) 和 Amazon Cognito 中的IAM許可。
注意
您透過這些步驟所建立的資源,無法在這些 AWS 帳戶之間共用。例如,您無法在一個帳戶中設定使用者集區,然後將其與不同帳戶中的 Amazon SES 電子郵件地址搭配使用。如果您的多個帳戶都使用 Amazon Cognito,請為這些帳戶個別重複這些步驟。
步驟 1:使用 Amazon 驗證您的電子郵件地址或網域 SES
在設定使用者集區之前,SES如果您想要執行下列任一動作,則必須向 Amazon 驗證一或多個網域或電子郵件地址:
-
使用您自己的電子郵件地址作為FROM地址
-
使用您的 Amazon SES組態來處理電子郵件交付
驗證過電子郵件地址或網域之後,您就能確認您擁有該地址,協助防止未經授權的使用。
如需使用 Amazon 驗證電子郵件地址的資訊SES,請參閱 Amazon Simple Email Service 開發人員指南 中的驗證電子郵件地址。如需使用 Amazon 驗證網域的資訊SES,請參閱驗證網域 。
步驟 2:將您的帳戶移出 Amazon SES沙盒
如果您使用預設的 Amazon Cognito 電子郵件組態,請省略此步驟。
當您第一次在任何 SES 中使用 Amazon 時 AWS 區域,它會將 放置在該區域的 Amazon SES沙盒 AWS 帳戶 中。Amazon SES使用沙盒來防止詐騙和濫用。如果您使用 Amazon SES組態來處理電子郵件交付,您必須先將 移 AWS 帳戶 出沙盒,Amazon Cognito 才能傳送電子郵件給使用者。
在沙盒中,Amazon SES會限制您可以傳送的電子郵件數量,以及可以傳送電子郵件的位置。您只能將電子郵件傳送至您已透過 Amazon 進行驗證的地址和網域SES,也可以將其傳送至 Amazon SES信箱模擬器地址。當您的 AWS 帳戶 保留在沙盒中時,請不要將 Amazon SES組態用於生產中的應用程式。在這種情況下,Amazon Cognito 無法將訊息傳送到使用者的電子郵件地址。
若要 AWS 帳戶 從沙盒中移除您的 ,請參閱 Amazon Simple Email Service 開發人員指南中的從 Amazon SES沙盒移出。
步驟 3:授予 Amazon Cognito 電子郵件許可
您可能需要為 Amazon Cognito 授予特定許可,其才能向您的使用者寄送電子郵件。您授予的許可,以及您用來授予許可的程序,取決於您是使用預設電子郵件組態還是您的 Amazon SES組態。
只有在您將使用者集區設定為使用 Cognito 傳送電子郵件或EmailSendingAccount
設定為 時,才完成此步驟COGNITO_DEFAULT
。
使用預設電子郵件組態,您的使用者集區可以使用下列其中一個地址傳送電子郵件訊息。
-
預設地址
no-reply@verificationemail.com
。 -
FROM 來自 Amazon 中已驗證電子郵件地址或網域的自訂地址SES。
如果您使用自訂地址,則 Amazon Cognito 會要求額外的許可,以便其使用此地址向您的使用者傳送電子郵件。這些許可是透過傳送 Amazon 中地址或網域的授權政策授予SES。如果您使用 Amazon Cognito 主控台將自訂地址新增至使用者集區,政策會自動附加至 Amazon SES已驗證的電子郵件地址。不過,如果您在主控台之外設定使用者集區,例如使用 AWS CLI 或 Amazon Cognito API,則必須使用 Amazon SES主控台
注意
您只能使用 AWS CLI 或 Amazon Cognito 在已驗證的網域中設定FROM地址API。
傳送授權政策允許或拒絕根據使用 Amazon Cognito 來叫用 Amazon 的帳戶資源進行存取SES。如需資源型政策的詳細資訊,請參閱 IAM 使用者指南 。您也可以在 Amazon SES開發人員指南 中找到以資源為基礎的政策範例。
範例 傳送授權政策
下列傳送授權政策範例授予 Amazon Cognito 使用 Amazon SES 驗證身分的有限能力。執行此操作時,Amazon Cognito 只能代表 aws:SourceArn
條件中的使用者集區和 aws:SourceAccount
條件中的帳戶傳送電子郵件訊息。
如需政策語法的詳細資訊,請參閱 Amazon Simple Email Service 開發人員指南 中的 Amazon SES傳送授權政策。
如需更多範例,請參閱 Amazon Simple Email Service 開發人員指南 中的 Amazon SES傳送授權政策範例。
如果您將使用者集區設定為使用您的 Amazon SES組態,Amazon Cognito 需要其他許可,才能SES在使用者傳送電子郵件時代您呼叫 Amazon。此服務會授予此授權IAM。
當您使用此選項設定使用者集區時,Amazon Cognito 會在您的 中建立服務連結角色 ,這是一種IAM角色類型 AWS 帳戶。此角色包含許可,允許 Amazon Cognito 存取 Amazon SES並使用地址傳送電子郵件。
Amazon Cognito 會使用設定組態之使用者工作階段的 AWS 憑證來建立您的服務連結角色。此工作階段的IAM許可必須包含 iam:CreateServiceLinkedRole
動作。如需 中許可的詳細資訊IAM,請參閱 IAM 使用者指南 中的存取 AWS 資源管理。
如需 Amazon Cognito 所建立服務連結角色的詳細資訊,請參閱使用 Amazon Cognito 的服務連結角色。
步驟 4:設定您的使用者集區
如果您需要將您的使用者集區設定為搭配下面任何一種設定,請完成下面步驟:
-
顯示為電子郵件寄件者的自訂FROM地址
-
自訂 REPLY-TO 地址,可接收使用者傳送到您FROM地址的訊息
-
您的 Amazon SES組態
注意
如果您的已驗證身分是電子郵件地址,Amazon Cognito 預設會將該電子郵件地址設定為 FROM和 REPLY-TO 電子郵件地址。但是,如果您已驗證的身分是網域,則必須提供FROM電子郵件地址的值。
如果您想要使用預設的 Amazon Cognito 電子郵件組態和地址,請省略此程序。
將使用者集區設定為使用自訂電子郵件地址
-
前往 Amazon Cognito 主控台
。如果出現提示,請輸入您的 AWS 憑證。 -
選擇 User Pools (使用者集區)。
-
從清單中選擇現有的使用者集區。
-
選擇 Messaging (簡訊) 索引標籤,尋找 Email configuration (電子郵件組態),選擇 Edit (編輯)。
-
在編輯電子郵件組態頁面上,選取從 Amazon 傳送電子郵件SES或使用 Amazon Cognito 傳送電子郵件。只有在您選擇從 Amazon 傳送電子郵件SES時,才能自訂SES區域 、組態集 和FROM寄件者名稱。
-
若要使用自訂FROM地址,請完成下列步驟:
-
在SES區域 下,選擇包含已驗證電子郵件地址的區域。
-
在FROM電子郵件地址 下,選擇您的電子郵件地址。使用您已透過 Amazon 進行驗證的電子郵件地址SES。
-
(選用) 在組態集 下,選擇 Amazon SES要使用的組態集。進行並保存此變更會建立服務連結角色。
-
(選用) 在FROM寄件者地址 下,輸入電子郵件地址。您可以僅提供電子郵件地址,或是
Jane Doe <janedoe@example.com>
格式的電子郵件地址和易記名稱。 -
(選用) 在 REPLY-TO 電子郵件地址 下,輸入您要接收使用者傳送至您FROM地址之訊息的電子郵件地址。
-
-
選擇 Save changes (儲存變更)。
相關主題