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

如何在WordPress求职板网站中通过邮件解析自动创建职位发布?

求职板邮件自动解析方案及主题选择建议

主题选择建议

  • Job Monster:功能最全面的求职板主题,自带成熟的职位发布系统,自定义字段支持完善,官方文档详细,社区活跃。扩展邮件解析功能时,可用的钩子和API较多,适合打造中大型求职平台。
  • Work Scout:轻量型主题,加载速度快,职位模块逻辑简洁,自定义字段配置门槛低,对新手开发者友好,适合中小型求职板快速搭建。
  • Superio:UI设计现代,移动端适配优秀,自带的职位表单与自定义字段集成度高,注重用户体验,适合追求视觉效果和移动端表现的场景。

如果是技术基础一般的新手,优先选Work Scout;需要全功能支持选Job Monster;看重现代UI选Superio。

免费邮件解析自动创建职位方案

方案一:自定义IMAP解析脚本(适合有PHP基础的开发者)

利用PHP的IMAP扩展直接连接Gmail,读取邮件并解析内容,调用WordPress API创建职位发布,全程免费且可控。

步骤:

  1. 开启Gmail IMAP权限:登录Gmail,进入「设置」→「转发和POP/IMAP」,开启IMAP;若开启了两步验证,需生成应用专用密码替代登录密码。
  2. 编写解析脚本:创建PHP脚本(可做成WordPress自定义插件或添加到主题functions.php),示例代码如下:
// 配置邮箱信息
$imap_host = '{imap.gmail.com:993/ssl}INBOX';
$imap_user = '你的邮箱地址@gmail.com';
$imap_pass = '你的应用专用密码';

// 连接IMAP服务器
$conn = imap_open($imap_host, $imap_user, $imap_pass);
if (!$conn) {
    error_log('IMAP连接失败: ' . imap_last_error());
    return;
}

// 筛选未读邮件
$unseen_emails = imap_search($conn, 'UNSEEN');
if ($unseen_emails) {
    foreach ($unseen_emails as $email_id) {
        // 获取邮件标题与正文
        $header = imap_headerinfo($conn, $email_id);
        $body = imap_fetchbody($conn, $email_id, 1); // 若邮件是HTML格式,可能需要调整参数为2

        // 解析关键信息(需根据实际邮件模板调整正则规则)
        $job_title = $header->subject;
        preg_match('/公司名称:(.*)/', $body, $company_match);
        $company_name = $company_match[1] ?? '未知公司';
        preg_match('/工作地点:(.*)/', $body, $location_match);
        $job_location = $location_match[1] ?? '未知地点';
        preg_match('/职位描述:(.*)/s', $body, $desc_match);
        $job_content = $desc_match[1] ?? '';

        // 创建职位发布(需确认主题对应的自定义文章类型,比如多数求职主题用job_listing)
        $job_post_args = array(
            'post_title'   => wp_strip_all_tags($job_title),
            'post_content' => $job_content,
            'post_status'  => 'publish', // 可改为draft先审核
            'post_type'    => 'job_listing',
        );

        $post_id = wp_insert_post($job_post_args);
        if ($post_id) {
            // 设置主题所需的自定义字段(需对照主题文档的字段名)
            update_post_meta($post_id, '_company_name', $company_name);
            update_post_meta($post_id, '_job_location', $job_location);
            // 标记邮件为已读
            imap_setflag_full($conn, $email_id, '\\Seen');
        }
    }
}

imap_close($conn);
  1. 定时执行脚本:利用WordPress的WP-Cron功能,设置定时任务(比如每小时执行一次),自动触发解析逻辑。可通过插件(如WP Crontrol)可视化配置,或添加代码到functions.php:
// 添加定时任务
add_action('wp', 'register_email_parse_cron');
function register_email_parse_cron() {
    if (!wp_next_scheduled('parse_email_to_job_cron')) {
        wp_schedule_event(time(), 'hourly', 'parse_email_to_job_cron');
    }
}

// 绑定任务到解析函数
add_action('parse_email_to_job_cron', 'your_parse_email_function_name');

方案二:免费IMAP插件+自定义钩子(简化版)

使用免费的IMAP邮件同步插件(如WP IMAP Sync)读取邮件,通过插件提供的钩子触发职位创建逻辑,无需从头写IMAP连接代码。

示例代码(添加到主题functions.php):

// 监听邮件同步完成事件
add_action('wp_imap_sync_after_fetch', 'parse_email_to_job_post', 10, 2);
function parse_email_to_job_post($email_data, $mailbox) {
    // 从$email_data中提取信息
    $job_title = $email_data['subject'];
    $body = $email_data['body'];

    // 解析字段逻辑同方案一
    preg_match('/公司:(.*)/', $body, $company_match);
    $company = $company_match[1] ?? '';

    // 创建职位发布
    $post_args = array(
        'post_title'   => wp_strip_all_tags($job_title),
        'post_content' => $body,
        'post_status'  => 'draft',
        'post_type'    => 'job_listing',
    );
    $post_id = wp_insert_post($post_args);
    if ($post_id) {
        update_post_meta($post_id, '_company_name', $company);
    }
}

注意事项

  • 确认所选主题的自定义文章类型名称和自定义字段键名,可通过主题文档或使用工具(如Custom Post Type UI)查看。
  • 要求发件人按照固定模板发送邮件(如包含「职位标题」「公司名称」等关键词),提升解析准确率。
  • 邮箱密码不要硬编码,可通过WordPress的update_option()存储,用get_option()获取,保障安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:50:25