如何批量获取Gmail账号对应的用户姓名?求Google Sheets或在线方案
可行解决方案
注意:只有当这些Gmail地址对应的用户是你的Google Workspace组织成员,或者你曾和对方有邮件往来(对方姓名已被Gmail自动记录),才能获取到姓名——Google不会公开陌生人的个人信息,这是隐私保护规则。
一、Google Sheets 内置函数方案
如果这些邮箱是你有过交互的联系人,或属于你的Workspace域,可按以下操作:
- 打开新Google Sheets,将所有Gmail地址列在A列(如A1至A2000)
- 在B1单元格输入公式:
=PROPER(REGEXEXTRACT(GETCONTACT(A1), "^(.+?) <"))- 解释:
GETCONTACT()调用你的Gmail联系人数据,REGEXEXTRACT()从"姓名 <邮箱>"格式中剥离姓名,PROPER()让姓名首字母大写
- 解释:
- 下拉B1单元格的填充柄,批量应用到所有行
- 若部分单元格返回
#N/A,说明该邮箱不在你的联系人列表,无法通过此方式获取
如果你是Google Workspace管理员,可直接用=USERINFO(A1, "name")函数(仅域内有效),一键获取域内用户全名。
二、Google Apps Script 批量处理方案
内置函数满足需求时,可写简单脚本批量拉取:
- 在Google Sheets中点击「扩展程序」→「Apps Script」
- 替换默认代码为:
function getGmailNames() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const emails = sheet.getRange("A1:A" + sheet.getLastRow()).getValues().flat().filter(email => email); const names = emails.map(email => { try { const contact = ContactsApp.getContactsByEmail(email)[0]; Utilities.sleep(100); // 加延迟避免触发调用限制 return contact ? [contact.getFullName()] : ["无匹配姓名"]; } catch(e) { return ["无法获取(隐私限制/无权限)"]; } }); sheet.getRange("B1:B" + names.length).setValues(names); }
- 点击「运行」,授权脚本访问你的Gmail和联系人数据
- 运行完成后,B列会自动填充对应姓名
三、关于在线工具的说明
目前没有合法的在线工具能批量获取陌生人的Gmail姓名——这违反Google隐私政策,正规工具均不会提供此类功能,这也是你之前找不到合适方案的原因。只有基于你自身联系人数据或Workspace权限的方法才可行。
内容的提问来源于stack exchange,提问作者Alif Hossain
相关产品推荐
相关产品推荐

