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

如何在WordPress中为Contact Form 7集成Mailjet邮件服务

嘿,我之前刚好处理过一模一样的需求,给你几个靠谱的实现方案,亲测能用:

方案1:用Mailjet发送CF7的表单通知邮件(替代默认WP邮件)

如果你的核心需求是让Contact Form 7发送的邮件通过Mailjet的服务提升送达率,这个方案最简单:

  • 安装并启用WP Mail SMTP这类通用SMTP插件(不需要专门的Mailjet插件)
  • 进入插件设置页面,选择「Mailjet」作为邮件发送服务商
  • 填入你在Mailjet后台获取的「API密钥」和「Secret密钥」(在Mailjet后台的「Settings → API Keys」里可以找到)
  • 配置好发件人邮箱和名称,记得先在Mailjet里验证这个发件邮箱
  • 测试发送一封邮件确认配置正常,之后CF7的所有表单通知邮件都会自动通过Mailjet发送

方案2:把CF7提交的用户数据同步到Mailjet邮件列表(替代Mailchimp的订阅功能)

如果你的需求是将表单提交的用户信息自动加入Mailjet的订阅列表,可以用CF7的钩子结合Mailjet API实现,完全自定义:

  1. 先在Mailjet后台创建好目标邮件列表,记下列表的ID(在列表详情页的URL或者设置里能找到)
  2. 拿到你的Mailjet API密钥和Secret密钥(同样在「Settings → API Keys」)
  3. 打开你的WordPress主题的functions.php文件(记得先备份!),添加以下代码,替换掉占位符:
add_action( 'wpcf7_mail_sent', 'cf7_sync_to_mailjet_list' );
function cf7_sync_to_mailjet_list( $contact_form ) {
    // 获取CF7提交的表单数据
    $submission = WPCF7_Submission::get_instance();
    if ( !$submission ) return;

    $posted_data = $submission->get_posted_data();
    
    // 替换成你CF7表单里的实际字段名,比如邮箱字段是「your-email」,姓名是「your-name」
    $user_email = $posted_data['your-email'];
    $user_name = $posted_data['your-name'];

    // Mailjet配置,替换成你的信息
    $mailjet_api_key = '你的Mailjet API密钥';
    $mailjet_secret_key = '你的Mailjet Secret密钥';
    $mailjet_list_id = '你的Mailjet列表ID';

    // 调用Mailjet API添加联系人到列表
    $api_url = 'https://api.mailjet.com/v3/REST/contactslist/' . $mailjet_list_id . '/managecontact';
    $request_args = array(
        'headers' => array(
            'Authorization' => 'Basic ' . base64_encode( $mailjet_api_key . ':' . $mailjet_secret_key ),
            'Content-Type' => 'application/json',
        ),
        'body' => json_encode( array(
            'Email' => $user_email,
            'Name' => $user_name,
            'Action' => 'addnoforce', // 已存在的联系人会忽略,要更新信息就改成「addforce」
        ) ),
        'method' => 'POST',
    );

    wp_remote_post( $api_url, $request_args );
}
  • 注意:一定要根据你CF7表单的字段名修改代码里的$posted_data键值,比如你的邮箱字段是[email* your-email],就用$posted_data['your-email']
  • 测试表单提交后,去Mailjet列表里查看是否成功添加了联系人

方案3:无代码自动化方案(适合不想碰代码的情况)

如果不想折腾代码,可以用自动化工具实现同步:

  • 用Zapier或者Make这类工具,创建一个自动化流程:
    1. 触发条件选「WordPress → 当Contact Form 7有新提交」
    2. 动作选「Mailjet → 添加联系人到列表」(或者发送自定义邮件)
    3. 分别连接你的WordPress和Mailjet账号,把CF7的表单字段映射到Mailjet的对应字段
    4. 测试流程没问题后启用,之后每次CF7提交都会自动同步到Mailjet

额外提示

  • 修改主题functions.php前一定要备份文件,避免出错导致网站崩溃
  • Mailjet免费版的API调用限制足够小流量网站使用,大流量可以考虑升级付费版
  • 不管用哪种方案,都要确保你的发件邮箱已经在Mailjet后台完成验证,不然邮件可能会被拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:15:31