在Linux机器上获取用户的默认电子邮件

Uri*_*Uri 5 c linux email

有没有办法以编程方式获取当前用户的电子邮件地址?我知道这封电子邮件通常是user @ hostname,但有没有我能收到的电子邮件?我知道如何获取用户名和主机名,以便我自己构建它,但我想确保即使电子邮件不是user @ hostname也能获得电子邮件地址.

C中的代码表示赞赏.

谢谢

Dou*_*der 5

没有用户帐户到电子邮件地址的标准映射 - 至少不适用于普通的/ etc/passwd派生帐户.考虑到用户可能甚至没有电子邮件地址.


Sim*_*oke 5

没有人提到/etc/passwd 文件中的GECOS字段。

您会注意到 /etc/passwd 中条目的第五个字段要么是空白,要么是一个以逗号分隔的列表,其中第一个元素是您的全名。最初在贝尔实验室(电子邮件时代之前),GECOS 字段是:

  1. 用户的全名(或应用程序名称,如果该帐户用于程序)
  2. 大楼及房间号或联系人
  3. 办公电话号码
  4. 任何其他联系信息(寻呼机号码、传真等)

一些 Linux 发行版将用户的默认电子邮件地址存储在第 4 个 GECOS 字段中,如果您的系统默认情况下不这样做,您可以自行设置。没有超级用户权限的普通用户可以使用命令行命令chfn编辑其 GECOS 字段。要访问该字段,您可以执行以下操作

grep ${USER}: /etc/passwd | awk -F\: '{print $5}' | awk -F\, '{print $4}'
Run Code Online (Sandbox Code Playgroud)

或者任何能让你的船在你选择的语言中漂浮的东西(不,我不会C。这是二十一世纪!)。