shell群发邮件脚本

linux版本:CentOS  6.7        //可以使用lsb_release -a查看

一、修改/etc/mail.rc         

set from=123456@qq.com     //你自己的真实邮箱地址
set smtp=smtp.exmail.qq.com         //在邮箱设置,客户端设置,设置方法,发送服务器里
set smtp-auth-user=123456@qq.com     //自己邮箱真实地址
set smtp-auth-password=123456       //自己邮箱密码
set smtp-auth=login
:wq  
重启postfix服务

二、到这里已经实现实现外部邮箱发送mail了,可以命令行输入

echo "Test Mail" | mail -s "Test"  123456@qq.com

########################################################################

也可以写脚本:

#!/bin/bash
user="
目标1  123456789@qq.com
目标2  123456789@163.com
……
"
userlist=`echo -e "${user}" | awk  '{print $2}'`
echo $userlist
mail -v -s "测试邮件"  $userlist < test.txt
:wq 

其中:

-v 显示详细信息

-s 邮件标题

test.txt     是你要输入邮件的内容

然后crontab -e 编辑计划任务,就可以实现定时发送邮件啦!

如果发送的邮件是tcmime.874.874.1356.bin这样的附件格式:

yum -y install dos2unix   #安装dos2unix转换工具

dos2unix -k test.txt     #解决发送内容变为附件问题,可在脚本中加入

解决中文乱码问题:

在脚本中加入:#export LANG=zh_CN.UTF-8

附件:/etc/postfix/main.cf的主要参数:

参数        	作用
myhostname	邮局系统的主机名。
mydomain	邮局系统的域名。
myorigin	从本机寄出邮件的域名名称。
inet_interfaces	监听的网卡接口。
mydestination	可接收邮件的主机名或域名。
mynetworks	设置可转发那些主机的邮件。
relay_domains	设置可转发那些网域的邮件

使用Zabbix服务端本地邮箱账号发送邮件  

一、安装sendmail或者postfix

yum install sendmail #安装

service sendmail start #启动

chkconfig sendmail on #设置开机启动

yum install postfix

service postfix start

chkconfig postfix on

CentOS 5.x 默认已经安装好sendmail

CentOS 6.x 默认已经安装好postfix

sendmail和postfix只需要安装一个即可并开启服务即可。

二、安装邮件发送工具mailx

1、yum安装

yum -y install mailx #安装

CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送可能会有问题。

yum remove mailx #卸载系统自带的旧版mailx

2、编译安装

下载mailx:

http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2

tar jxvf mailx-12.4.tar.bz2 #解压

cd mailx-12.4 #进入目录

make #编译

make install UCBINSTALL=/usr/bin/install #安装

ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接

ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接

whereis mailx #查看安装路径

mailx -V #查看版本信息

echo "zabbix test mail" |mail -s "zabbix" xxx@163.com

#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:xxx@163.com

  

  

  

  

 

转载于:https://www.cnblogs.com/01-single/p/6863695.html

### 回答1: 答:#!/bin/bash# 设置邮件服务器 MAIL_SERVER="smtp.example.com"# 设置邮件发送者 MAIL_FROM="sender@example.com"# 设置邮件接收者 MAIL_TO="recipient@example.com"# 设置邮件主题 SUBJECT="Test Email"# 设置邮件内容 MESSAGE="This is a test email sent from a shell script"# 发送邮件 /usr/sbin/sendmail -f "$MAIL_FROM" -t "$MAIL_TO" -u "$SUBJECT" -m "$MESSAGE" -S "$MAIL_SERVER" ### 回答2: 编写一个Shell脚本来发送邮件可以使用邮件客户端程序来实现。以下是一个实现的示例脚本: ```bash #!/bin/bash to_email="recipient@example.com" # 邮件接收者的地址 from_email="sender@example.com" # 邮件发送者的地址 subject="测试邮件" # 邮件主题 body="这是一封测试邮件。" # 邮件正文 # 使用邮件客户端程序发送邮件 echo -e "To: $to_email\nFrom: $from_email\nSubject: $subject\n\n$body" | /usr/sbin/sendmail -t ``` 在脚本中,你需要设置邮件接收者的地址(to_email)、邮件发送者的地址(from_email)、邮件主题(subject)和邮件正文(body)。然后通过在命令行中输出邮件的标准格式,并通过管道将其传递给邮件客户端程序`/usr/sbin/sendmail`来发送邮件。 请注意,此脚本假设你的系统已经安装了sendmail邮件服务器软件,并且`/usr/sbin/sendmail`是sendmail可执行文件的路径。如果你的系统中使用的是其他邮件客户端程序,你需要相应地更改命令`/usr/sbin/sendmail`为你使用的程序的路径。 使用上述脚本发送邮件时,确保将邮件内容替换为实际的内容,并根据需要设置其他邮件相关的参数,例如附件、抄送、密送等。 希望这个脚本对你有所帮助! ### 回答3: 编写一个shell发送邮件脚本,可以使用邮件客户端工具如"mail"或者"sendmail"来实现。以下是一个示例脚本: ```shell #!/bin/bash # 设置邮件信息 from="your_email@example.com" # 发件人邮箱 to="recipient@example.com" # 收件人邮箱 subject="这是邮件的主题" # 邮件主题 body="这是邮件的正文内容" # 邮件正文 # 使用mail命令发送邮件 echo -e "Subject:${subject}\n${body}" | mail -s "${subject}" -r "${from}" "${to}" ``` 脚本使用了"mail"命令来发送邮件,参数如下: - `-s` 指定邮件主题 - `-r` 指定发件人邮箱 - 最后一个参数是收件人邮箱 脚本中"Subject"是一个特殊字段,用于指定邮件主题。脚本使用`echo`命令来生成邮件正文,然后通过管道将结果发送给"mail"命令。 注意:在使用该脚本之前,需要确保系统已经安装了邮件客户端工具如"mail"或者"sendmail"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值