【问题标题】:sendmail - with the same from and to host namessendmail - 具有相同的 from 和 to 主机名
【发布时间】:2019-04-23 09:42:48
【问题描述】:

我在 perl 脚本中使用 sendmail,并希望从调用该脚本的用户那里获得“收件人”地址。

换句话说,我希望 from 和 to 地址相同。我该怎么做?

谢谢。

【问题讨论】:

  • 您目前如何使用sendmail 在收件人地址和发件人地址不同的情况下发送消息?
  • open(Mail, "|/usr/sbin/sendmail -t"); print MAIL "To: $to\n" print MAIL $msg close(MAIL) 我目前正在手动输入我自己的电子邮件地址我需要的是,如果用户调用此脚本,脚本完成后他应该会收到一封电子邮件

标签: linux perl unix sendmail


【解决方案1】:

给定你的代码

open(Mail, "|/usr/sbin/sendmail -t");
print MAIL "To: $to\n"
print MAIL $msg
close(MAIL)

我建议在前面加上

$to ||= $ENV{SUDO_USER} || $ENV{USERNAME} || $ENV{LOGNAME} || $ENV{USER} || getpwuid $<;

我建议你在最后一个标题之后添加一个额外的换行符,这样如果 $msg 恰好以可能看起来像标题的东西开头,它就不会被用作标题。除非这实际上是你依赖的行为......(但我建议不要依赖这种行为......)

【讨论】:

    【解决方案2】:

    实际上并没有用户的“电子邮件地址”属性。如果您只是通过本地 MTA,用户的地址通常是他们的用户名,您可以在类 Unix 系统上使用 scalar getpwuid $&gt; 检索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      相关资源
      最近更新 更多