cron(8): Add MAILFROM ability for crontabs
This changes the sender mail address in a similar fashion to how MAILTO may change the recipient. The default from address remains unchanged. MFC after: 1 week
This commit is contained in:
parent
1631235aa6
commit
12455a9e31
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=346252
@ -17,7 +17,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd July 19, 2017
|
.Dd April 15, 2019
|
||||||
.Dt CRON 8
|
.Dt CRON 8
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -79,6 +79,9 @@ commands, any output is mailed to the owner of the crontab (or to the user
|
|||||||
named in the
|
named in the
|
||||||
.Ev MAILTO
|
.Ev MAILTO
|
||||||
environment variable in the crontab, if such exists).
|
environment variable in the crontab, if such exists).
|
||||||
|
The from address of this mail may be set with the
|
||||||
|
.Ev MAILFROM
|
||||||
|
environment variable.
|
||||||
.Pp
|
.Pp
|
||||||
Additionally,
|
Additionally,
|
||||||
.Nm
|
.Nm
|
||||||
|
@ -93,7 +93,7 @@ child_process(e, u)
|
|||||||
{
|
{
|
||||||
int stdin_pipe[2], stdout_pipe[2];
|
int stdin_pipe[2], stdout_pipe[2];
|
||||||
register char *input_data;
|
register char *input_data;
|
||||||
char *usernm, *mailto;
|
char *usernm, *mailto, *mailfrom;
|
||||||
int children = 0;
|
int children = 0;
|
||||||
# if defined(LOGIN_CAP)
|
# if defined(LOGIN_CAP)
|
||||||
struct passwd *pwd;
|
struct passwd *pwd;
|
||||||
@ -111,6 +111,7 @@ child_process(e, u)
|
|||||||
*/
|
*/
|
||||||
usernm = env_get("LOGNAME", e->envp);
|
usernm = env_get("LOGNAME", e->envp);
|
||||||
mailto = env_get("MAILTO", e->envp);
|
mailto = env_get("MAILTO", e->envp);
|
||||||
|
mailfrom = env_get("MAILFROM", e->envp);
|
||||||
|
|
||||||
#ifdef PAM
|
#ifdef PAM
|
||||||
/* use PAM to see if the user's account is available,
|
/* use PAM to see if the user's account is available,
|
||||||
@ -503,8 +504,12 @@ child_process(e, u)
|
|||||||
warn("%s", MAILCMD);
|
warn("%s", MAILCMD);
|
||||||
(void) _exit(ERROR_EXIT);
|
(void) _exit(ERROR_EXIT);
|
||||||
}
|
}
|
||||||
fprintf(mail, "From: Cron Daemon <%s@%s>\n",
|
if (mailfrom == NULL || *mailfrom == '\0')
|
||||||
usernm, hostname);
|
fprintf(mail, "From: Cron Daemon <%s@%s>\n",
|
||||||
|
usernm, hostname);
|
||||||
|
else
|
||||||
|
fprintf(mail, "From: Cron Daemon <%s>\n",
|
||||||
|
mailfrom);
|
||||||
fprintf(mail, "To: %s\n", mailto);
|
fprintf(mail, "To: %s\n", mailto);
|
||||||
fprintf(mail, "Subject: Cron <%s@%s> %s\n",
|
fprintf(mail, "Subject: Cron <%s@%s> %s\n",
|
||||||
usernm, first_word(hostname, "."),
|
usernm, first_word(hostname, "."),
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd June 6, 2018
|
.Dd April 15, 2019
|
||||||
.Dt CRONTAB 5
|
.Dt CRONTAB 5
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -116,6 +116,9 @@ If
|
|||||||
.Ev MAILTO
|
.Ev MAILTO
|
||||||
is defined (and non-empty), mail is
|
is defined (and non-empty), mail is
|
||||||
sent to the user so named.
|
sent to the user so named.
|
||||||
|
If
|
||||||
|
.Ev MAILFROM
|
||||||
|
is defined (and non-empty), its value will be used as the from address.
|
||||||
.Ev MAILTO
|
.Ev MAILTO
|
||||||
may also be used to direct mail to multiple recipients
|
may also be used to direct mail to multiple recipients
|
||||||
by separating recipient users with a comma.
|
by separating recipient users with a comma.
|
||||||
|
Loading…
Reference in New Issue
Block a user