You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在退订页面自动填充用户邮箱(基于Dynamic 365营销表单)

实现外部退订页面显示Dynamics 365营销用户邮箱的可行方案

以下是几种实用的实现方案,适配不同场景需求:

方案一:利用Dynamics退订链接的内置URL参数传递邮箱

Dynamics 365营销生成的退订链接默认会携带用户邮箱作为查询参数(通常为email),直接通过前端脚本提取并显示即可:

  1. 确认退订链接格式:邮件中的退订链接会自动生成为类似https://your-external-page.com?email=user@example.com的形式,其中email参数即为用户邮箱。
  2. 前端脚本提取并显示:在外部退订页面添加以下JavaScript代码,获取URL参数并渲染到页面:
    // 封装获取URL参数的函数
    function getUrlParam(paramName) {
        const urlParams = new URLSearchParams(window.location.search);
        return urlParams.get(paramName);
    }
    
    // 获取邮箱并显示
    const userEmail = getUrlParam('email');
    if (userEmail) {
        // 显示邮箱到页面指定元素
        document.getElementById('user-email').textContent = userEmail;
        // 同步给表单的邮箱字段(如果表单需要预填充)
        document.querySelector('input[name="email"]').value = userEmail;
    }
    
  3. 页面添加显示元素:在页面合适位置添加用于展示邮箱的HTML元素,例如:
    <div class="email-info">您的订阅邮箱:<span id="user-email"></span></div>
    

方案二:自定义退订链接的动态令牌参数

如果默认链接未携带邮箱参数,可以手动在Dynamics营销中配置退订链接,使用动态令牌插入用户邮箱:

  1. 编辑邮件退订链接:在Dynamics营销邮件编辑器中,设置退订链接的URL为:
    https://your-external-page.com?email={{Contact.Email}}
    
    其中{{Contact.Email}}是Dynamics的动态令牌,发送邮件时会自动替换为收件人的实际邮箱地址。
  2. 后续处理同方案一:使用相同的前端脚本提取并显示邮箱即可。

方案三:通过Dynamics Web API安全获取邮箱(适用于高安全需求场景)

如果不想在URL中暴露邮箱,可以利用退订链接携带的contactId或subscriptionId参数,通过Dynamics Web API查询用户邮箱:

  1. 确认链接中的身份参数:退订链接通常会携带contactId参数,格式类似https://your-external-page.com?contactId=xxxx-xxxx-xxxx-xxxx。
  2. 调用Web API查询邮箱:在外部页面中调用Dynamics Web API获取用户信息(需提前配置身份验证,例如应用注册的客户端凭据):
    const contactId = getUrlParam('contactId');
    const dynamicsInstanceUrl = 'https://your-dynamics-instance.crm.dynamics.com';
    const accessToken = 'YOUR_VALID_ACCESS_TOKEN'; // 需通过身份验证流程获取
    
    if (contactId && accessToken) {
        fetch(`${dynamicsInstanceUrl}/api/data/v9.2/contacts(${contactId})?$select=emailaddress1`, {
            method: 'GET',
            headers: {
                'Authorization': `Bearer ${accessToken}`,
                'Accept': 'application/json'
            }
        })
        .then(res => res.json())
        .then(data => {
            const userEmail = data.emailaddress1;
            document.getElementById('user-email').textContent = userEmail;
        })
        .catch(err => console.error('查询用户信息失败:', err));
    }
    
    注意:此方案需要处理Dynamics的身份验证逻辑,适合对数据隐私要求较高的场景。

注意事项

  • 确保页面使用HTTPS协议,避免URL参数中的邮箱在传输过程中被窃取。
  • 对提取的邮箱参数进行解码处理,避免特殊字符(如+、%40)导致显示异常。
  • 测试邮件转发场景,确认链接参数在转发后依然有效。

内容的提问来源于stack exchange,提问作者Sukhjeevan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:59:52