sendmail-主机名与主机名相同

时间:2018-11-20 21:12:10

标签: linux perl unix sendmail

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

换句话说,我希望发件人和发件人地址相同。我该怎么办?

谢谢。

2 个答案:

答案 0 :(得分:0)

给出您的代码

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刚好以可能看起来像标头的内容开头,则不会将其用作标头。除非这实际上是您要依赖的行为...(但我建议您不要依赖该行为...)

答案 1 :(得分:-1)

实际上没有用户的“电子邮件地址”属性。如果您只是通过本地MTA,则用户的地址通常是其用户名,您可以在类似Unix的系统上使用namespace NETCoreWebApp.Controllers { public class HomeController : Controller { private readonly IModelManager iModelManager = new ModelManager(); public IActionResult Index() { return View(); } public IActionResult Hotel() { return View(); } [HttpPost] public IActionResult Index(SearchRoomsModel model) { string query = string.Format("{0},{1} 12:00,{2} 12:00,{3},{4}", model.Location, model.CheckIn, model.CheckOut, model.NumAdults, model.NumChild); iModelManager.GetAvailableRooms(query); return RedirectToAction("Hotel"); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } } 来检索该用户名。