You don't need to set up an SMTP host from scratch (sendmail needs a lot of study ). Use a perl script calling up the Net::SMTP module and connect to an existing SMTP host (you do have one of these, don't you?)
Here's a script that I knocked up. Call it up by piping or redirecting the message content with a message title followed by a list of users.
Code:
#!/usr/bin/perl
#(C) son_t, 2010
#Usage: sendmessage.pl "MESSAGE TITLE" <user> [<user>] < message_content_file
#Or: cat message_content_file | sendmessage.pl "MESSAGE TITLE" <user> [<user>]"
use Net::SMTP;
my $domain = "YOUR DOMAIN";
my $smtphost = "YOUR SMTP HOST";
my $sending_user = `/usr/ucb/whoami`;
chop($sending_user);
my $server = `/usr/bin/hostname`;
chop($server);
my $subject=shift(@ARGV);
my @users = @ARGV;
if (!@users) {
print STDERR "Must specify one or more users\n";
exit 1;
}
# qualify addresses
for (my $i = 0; $i < @users; $i++) {
$users[$i] = $users[$i] . "\@$domain" if ($users[$i] !~ /\@/);
}
# connect
#print "connect smtphost:$smtphost server.domain:$server.$domain\n";
$smtp = Net::SMTP->new("$smtphost",Hello=>"$server.$domain");
if (!defined($smtp)) {
print STDERR "Error connecting to server\n";
exit 1;
}
# setup
#print "setup $sending_user\@$server.$domain\n";
$smtp->mail("$sending_user\@$server.$domain");
$smtp->recipient(@users);
$smtp->data();
# header
my $tousers = join(', ', @users);
#print "header tousers:$tousers sending_user:$sending_user\@$server.$domain subject:$subject\n";
$smtp->datasend("To: $tousers\n");
$smtp->datasend("From: $sending_user\@$server.$domain\n");
$smtp->datasend("Subject: $subject\n\n");
# body
$smtp->datasend(<STDIN>);
# finish
$smtp->dataend();
$smtp->quit;
It would be nice to see your (or anybody's) disk usage monitoring script, if you've written one. I've got one, which I found on the web and modified for my own use (which I could post if anyone is interested.)
I have been a member for almost a year now. I have always recieved email notifications when I select "subcribe to this thread" at the bottom of posts that I reply to.
However, over the last month or so, I have not been recieving email notification of replys to posts I respond to.
I have... (6 Replies)
Hi.
I want to add email notification so when the my script finishes it sends out an email of the results to our team. If there are errors the subject on the email should say there were errors.
If any having idea/sample scripts pls share with me. (2 Replies)
Hey guys
Just need some help with crontab.Iam looking for a script that will alert particular user about its change through sendmail.We are using bash here.
--CoolKid (3 Replies)
Hi,
I'm fairly new to Aix and am looking for some help on the following.
I have setup a cron job under root and want it to send the email once it's run to an external email address. I can get it to send the output in an email to me by using mail on the end of the crontab entry. But I would... (1 Reply)
hi guys
I hope this goes here
Have someone used Linux heartbeat to send email when the Slave server becomes the Master?
I've read I can configure the MailTo under
/etc/ha.d/resource.d
but I really don't know how to do it.
I basically need my primary server to send an email when it... (2 Replies)
Hi
All of a sudden the syslog daemon in the server went down and then later I started it manually
# ps -ef | grep syslogd
root 217228 114906 0 Nov 16 - 0:00 /usr/sbin/syslogd
root 430306 290870 0 14:18:11 pts/0 0:00 grep syslogd
Can some one help me with a script which will monitor the... (2 Replies)
Hi,
I am using spacewalk tool ( Linux systems management solution ). I have configured probe notification and notification method in spacewalk.
But I am not getting the notification mail.
Checked the /var/log/maillog and the error message as follows,
Dec 11 17:01:11 spserver... (2 Replies)
Hi All,
I need write a linux script which emails each record to the employee manager email-id which will be specified inside the file.
Each employee can have a different manager too..
file contain 200 to 300 records
Employee ID, Employee Name, Employee Email-ID, Manager, Manager... (4 Replies)
Hi,
I am getting error below when testing email. is there a way I can configure email on Solaris?
SunOS -s 5.10 Generic_147440-04 sun4u sparc SUNW,SPARC-Enterprise
echo "hello" | sendmail -v abcd
WARNING: local host name (-s) is not qualified; see cf/README: WHO AM I?
abcd... Connecting... (1 Reply)
Discussion started by: roshanbi
1 Replies
LEARN ABOUT SUNOS
etrn
etrn(1M) System Administration Commands etrn(1M)NAME
etrn - start mail queue run
SYNOPSIS
etrn [-b] [-v] server-host [client-hosts]
DESCRIPTION
SMTP's ETRN command allows an SMTP client and server to interact, giving the server an opportunity to start the processing of its queues
for messages to go to a given host. This is meant to be used in start-up conditions, as well as for mail nodes that have transient connec-
tions to their service providers.
The etrn utility initiates an SMTP session with the host server-host and sends one or more ETRN commands as follows: If no client-hosts are
specified, etrn looks up every host name for which sendmail(1M) accepts email and, for each name, sends an ETRN command with that name as
the argument. If any client-hosts are specified, etrn uses each of these as arguments for successive ETRN commands.
OPTIONS
The following options are supported:
-b System boot special case. Make sure localhost is accepting SMTP connections before initiating the SMTP session with server-
host.
This option is useful because it prevents race conditions between sendmail(1M) accepting connections and server-host
attempting to deliver queued mail. This check is performed automatically if no client-hosts are specified.
-v The normal mode of operation for etrn is to do all of its work silently. The -v option makes it verbose, which causes etrn
to display its conversations with the remote SMTP server.
ENVIRONMENT VARIABLES
No environment variables are used. However, at system start-up, svc:/network/smtp:sendmail reads /etc/default/sendmail. In this file, if
the variable ETRN_HOSTS is set, svc:/network/smtp:sendmail parses this variable and invokes etrn appropriately. ETRN_HOSTS should be of the
form:
"s1:c1.1,c1.2 s2:c2.1 s3:c3.1,c3.2,c3.3"
That is, white-space separated groups of server:client where client can be one or more comma-separated names. The :client part is optional.
server is the name of the server to prod; a mail queue run is requested for each client name. This is comparable to running:
/usr/lib/sendmail -qR client
on the host server.
EXAMPLES
Example 1: Using etrn
Inserting the line:
ETRN_HOSTS="s1.domain.com:clnt.domain.com s2.domain.com:clnt.domain.com"
in /etc/default/sendmail results in svc:/network/smtp:sendmail invoking etrn such that ETRN commands are sent to both s1.domain.com and
s2.domain.com, with both having clnt.domain.com as the ETRN argument.
The line:
ETRN_HOSTS="server.domain.com:client1.domain.com,client2.domain.com"
results in two ETRN commands being sent to server.domain.com, one with the argument client1.domain.com, the other with the argument
client2.domain.com.
The line:
ETRN_HOSTS="server1.domain.com server2.domain.com"
results in set of a ETRN commands being sent to both server1.domain.com and server2.domain.com; each set contains one ETRN command for each
host name for which sendmail(1M) accepts email, with that host name as the argument.
FILES
/etc/mail/sendmail.cf sendmail configuration file
/etc/default/sendmail Variables used by svc:/network/smtp:sendmail
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWsndmu |
+-----------------------------+-----------------------------+
|Interface Stability |Stable |
+-----------------------------+-----------------------------+
SEE ALSO sendmail(1M), attributes(5)
RFC 1985
NOTES
Not all SMTP servers support ETRN.
SunOS 5.10 10 Aug 2004 etrn(1M)