首页 > 其他分享 >salesforce学习笔记(9)- 验证用户电子邮件

salesforce学习笔记(9)- 验证用户电子邮件

时间:2024-07-01 16:55:38浏览次数:17  
标签:salesforce Database 验证 用户 笔记 发送 电子邮件 邮件

1、背景

从Spring ’22开始,Salesforce要求所有组织和Experience Cloud站点的所有用户验证他们的电子邮件地址。如果用户从未经验证的电子邮件地址发送电子邮件,Salesforce会拒绝此电子邮件消息,并不会完成发送。未经验证的电子邮件地址在用户验证他们的电子邮件地址重置密码之前不能用于发送邮件。

Summer '24 版本的发布,Salesforce 现在对所有组织和 Experience Cloud 站点强制执行此要求!详细内容请参考官方文档:Help And Training Community

如下如,图1验证过的邮箱可以用于发送邮件,图2未验证过的邮箱不可以发送邮件。

2、对应策略

应对这个情况的时候,根据需要验证用户的多少,我个人有两种方法:

2-1、手动逐条验证

当所需验证用户较少(如5条以内),可以选择手动逐条点击验证Link。

这里点击确定后,用户会收到两条邮件。

第一条:这条邮件中,点击Verify Account后,会跳转至重置密码的页面,如果选择这种方式,后续就可以通过账号密码的形式进行登录Salesforce。

走完这个流程,即完成用户验证。

2-2、通过Apex批量发送邮箱进行验证

当需要发送验证邮件的用户较多时,可以选择用如下方式,批量发送邮件。

global class SendVerificationEmailBatch implements Database.Batchable<SObject>, Database.AllowsCallouts {
    
    global Database.QueryLocator start(Database.BatchableContext bc) {
        // 查找未验证邮箱的用户
        String query = 'SELECT Id, Email FROM User WHERE Id = \'005J90000015zU9IAI\'';
        return Database.getQueryLocator(query);
    }

    global void execute(Database.BatchableContext bc, List<User> scope) {
        // 发送验证邮箱的电子邮件
        for (User user : scope) {
            try {
                // 使用实际的电子邮件模板ID替换
                String emailTemplateId = '2F00XJ9000000ca8r';
                
                // 调用异步邮件验证方法
                System.UserManagement.sendAsyncEmailConfirmation(user.Id, emailTemplateId, null, null);
            } catch (Exception e) {
                System.debug('Error sending email to user: ' + user.Id + ', error: ' + e.getMessage());
            }
        }
    }

    global void finish(Database.BatchableContext bc) {
        System.debug('Batch process finished.');
    }
}

然后,在Developer Console中执行上述批处理即可完成批量邮件发送,达到与2-1相同的验证用户邮箱的目的,但是这种验证方式,不支持用户的单点登录。

SendVerificationEmailBatch batch = new SendVerificationEmailBatch();
Database.executeBatch(batch, 100);

Copyright © 乔木船长

个人主页:乔木船长

欢迎转发点评和指正!

标签:salesforce,Database,验证,用户,笔记,发送,电子邮件,邮件
From: https://blog.csdn.net/Cap7a1n/article/details/140104097

相关文章

  • [刷题笔记] Luogu P1612 [yLOI2018] 树上的链
    ProblemDescriptionDescription给定一棵有\(n\)个节点的树。每个节点有一个点权和一个参数。节点\(i\)的权值为\(w_i\),参数为\(c_i\)。\(1\)是这棵树的根。现在,对每个节点\(u\)(\(1\lequ\leqn\)),请在树上你找到最长的一条链\(v_1,v_2,\dotsv_m\),满足如下条件:......
  • (技术笔记)机器学习理论导引-关键内容分享
    基础概念: 介绍机器学习的基本概念,包括监督学习、无监督学习、半监督学习和强化学习等。模型和算法: 对常见的机器学习模型和算法进行详细介绍,例如决策树、支持向量机、神经网络、聚类算法等。性能度量: 讨论评估和比较机器学习模型性能的指标,例如准确度、精确度、召回率、F1分......
  • AMM论文阅读笔记
    AMM:AttentiveMulti-fieldMatchingforNewsRecommendation论文阅读笔记Abstract现存的问题:​ 个性化新闻推荐是帮助用户找到感兴趣新闻的关键技术,而如何精确匹配用户兴趣和候选新闻是新闻推荐的核心。现有研究一般通过聚合用户浏览过的新闻来学习用户的兴趣向量,然后将其......
  • stm32学习笔记---DMA直接存储器存取(代码部分)DMA数据转运/DMA+AD多通道
    目录第一个代码:DMA数据转运扩展知识DMA的配置步骤DMA的库函数DMA_DeInitDMA初始化和DMA结构体初始化函数DMA_CmdDMA_ITConfigDMA_SetCurrDataCounterDMA_GetCurrDataCounter四个获取标志位状态函数代码实现MyDMA.c第一步,开启时钟第二步,初始化DMA第三步,开关控制......
  • stm32学习笔记---DMA直接存储器存取(理论部分)
    目录DMA的简介存储器映像DMA框图DMA基本结构图DMA请求数据宽度与对齐实例数据转运+DMAADC扫描模式+DMA位段嵌入式闪存启动配置声明:本专栏是本人跟着B站江科大的视频的学习过程中记录下来的笔记,我之所以记录下来是为了方便自己日后复习。如果你也是跟着江科大的视......
  • 学习笔记——数论
    写在前面...通过写数论的md笔记,新知识不确定有没有学懂,但是我的md数学公式方法得到了极大的提升orz质数的定义:针对从2开始的整数定义,如果只包含1和本身这两个因数,则称该数为质数(素数)(1)质数的判定:试除法枚举因数的时候,只枚举到因数比较小的那个范围(根号n)(2)分解质因数:试除法从......
  • sql-labs通关笔记(上)
    sql-labs通关笔记(上)这里我们先只讲解less-1到less-9联合查询注入Less-1:GET-Errorbased.Singlequotes-string界面在url中加入?id=1?id=-1判断注入点使用’或\来判断是否存在注入点payloadhttp://127.0.0.1/sqli/Less-1/?id=-1'报错信息near''-1''LIMIT0......
  • vue学习笔记4
    1.数组变化侦测<template><div>数组变化侦听</div><buttonv-on:click="addListHandler">添加数据</button><ul><liv-for="(item,index)innames":key="index">{{item}}</li></ul><......
  • 阅读笔记《GB/T28449-2018信息安全技术网络安全等级保护测评过程指南》
    方案编制:测评对象确定、测评指标确定、测评内容确定、工具测试方法确定、测评指导书开发、测评方案编制对每项活动均给出相应的工作流程、主要任务、输出文档及活动中的相关方的职责的规定,每项工作任务均有相应的输入、任务描述和输出产品测评风险:影响系统正常运行、感信息泄露......
  • rockit 学习、开发笔记(二)(RGN)
    介绍完了VO模块的用法,接下来就是RGN模块的用法。对于RGN模块的用例可以参考platform/external/rockit/路径下的相关目录中的rgndemo。rgn的概述:(rockchip官方文档)用户一般都需要在视频中叠加OSD用于显示一些特定的信息(如:通道号、时间戳等),必要时还会填充色块。这些叠......