ubuntu+shell发送邮件_ubuntu shell - CSDN
精华内容
参与话题
  • 第一步、Ubuntu安装发送邮件程序 sudo apt-get install heirloom-mailx vi /etc/s-nail.rc     在最后加入: set from=0000@qq.com set smtp=smtps://smtp.qq.com:465 set smtp-auth-user=0000@qq.com ...

    第一步、Ubuntu安装发送邮件程序

    sudo apt-get install heirloom-mailx
    vi /etc/s-nail.rc

     

     

    在最后加入:

    set from=0000@qq.com

    set smtp=smtps://smtp.qq.com:465

    set smtp-auth-user=0000@qq.com

    set smtp-auth-password=asdasdsadad

    set smtp-auth=login

     

    说明:此处以qq邮箱为例,smtp为邮箱服务器,password是邮箱smtp密码,并非qq密码,获取方式如下:



     

     

     

    第二步、发送邮件:

    mail -s "邮件标题" "111111@qq.com" < content.txt

     说明:111111@qq.com为收件人邮箱,content.txt为邮件内容

    展开全文
  • 首先需要安装mutt和msmtp sudo apt-get install mutt sudo apt-get install msmtp 编辑mutt配置文件系统全局设置/etc/Muttrc,如果使用某个系统用户,可以在~/.muttrc中设置。vim .muttrcset sendmail="/usr/bin...

    首先需要安装mutt和msmtp

    sudo apt-get install mutt
    sudo apt-get install msmtp

    编辑mutt配置文件
    系统全局设置/etc/Muttrc,如果使用某个系统用户,可以在~/.muttrc中设置。
    vim .muttrc
    set sendmail="/usr/bin/msmtp"
    set use_from=yes
    set realname="123"              
    set from=123@126.com    #第三方邮箱发送地址
    set envelope_from=yes

    创建~/.msmtprc和~/.msmtp.log,分别为配置和日志文件。
    vim .msmtprc

    account default
    host smtp.126.com             #QQ邮箱应该填写:smtp.qq.com 
    from 123@126.com            #第三方邮箱发送地址
    auth plain
    user 123                               #第三方邮箱发送地址
    password 123456                 #第三方邮箱smtp服务密码
    logfile ~/.msmtp.log             #可以将相关的邮件发送日志保存在这个文件中。

    由于password是明码,所以我们需要修改此文件的权限。
    chmod 600 .msmtprc

    .msmtp.log 可能会需要更多的权限

    chmod 660 .msmtp.log
    touch ~/.msmtp.log              #touch是创建该文件夹,

    邮件发送方式        -s 主题
    echo "test" |mutt -s "my_first_test" 123@126.com

    转载于:https://www.cnblogs.com/Anthony-ling/p/9839454.html

    展开全文
  • Shell发送邮件+附件

    千次阅读 2019-05-23 16:39:19
    shell发送邮件+附件log文件 这里以QQ邮箱为发送方进行操作的 1. 生成QQ邮箱授权码 2. 服务器配置 2.1 关闭sendmail的服务 service sendmail status 如果有安装,就关闭sendmail的服务,并关闭开机自启动 ...

    shell发送邮件,这里以QQ邮箱为发送方进行操作的

    1. 生成QQ邮箱授权码

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2. 服务器配置

    2.1 关闭sendmail的服务

    service sendmail status
    

    在这里插入图片描述
    如果有安装,就关闭sendmail的服务,并关闭开机自启动

    service sendmail stop
    chkconfig sendmail off
    

    2.2 开启postfix服务

    service postfix status
    service postfix start
    

    在这里插入图片描述
    postfix start失败,执行检查命令postfix check
    在这里插入图片描述
    解决:安装mysql-libs

    rpm -qa|grep mysql
    yum install -y mysql-libs
    

    设置postfix 开机自启动

    chkconfig postfix on
    

    2.3 创建认证

    mkdir -p /root/.certs/
    echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
    certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
    certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
    certutil -L -d /root/.certs
    cd /root/.certs
    certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu"  -d ./ -i qq.crt
    ll
    

    在这里插入图片描述

    2.3 配置mail.rc

    vi /etc/mail.rc
    

    文件尾部添加下面内容:

    set from=131413688@qq.com
    set smtp=smtp.qq.com
    set smtp-auth-user=131413688
    #授权码
    set smtp-auth-password=xxxxx
    set smtp-auth=login
    set smtp-use-starttls
    set ssl-verify=ignore
    set nss-config-dir=/root/.certs
    

    说明:上面的from、smtp-auth-user换成自己的QQ号,xxxxx替换成第1步生成的授权码

    3. 测试

    3.1 直接发送普通文字邮件

    echo  "hello word" | mail -s "title"  131413688@qq.com
    

    接收到的邮件:
    在这里插入图片描述

    3.2 将文件内容作为邮件内容发送

    cd /root/data/shell
    vim mailContent.txt
    

    文件内容为:

    Hello Jack, Nice to meet you.
    I'm from shenzhen, China.
    

    执行发送邮件命令

    cd /root/data/shell
    cat mailContent.txt | mail -s "旅游向导" 131413688@qq.com
    

    接收到的邮件:
    在这里插入图片描述

    3.3 shell发送无附件的邮件

    1)编写shell脚本

    vim /root/shell/mail/mail_noattachment.sh
    

    文件内容为:

    #!/bin/bash 
    
    FROM_EMAIL="131413688@qq.com"
    TO_EMAIL="100861008@qq.com,100861999@qq.com"
    JOB_NAME="TEST"
    RUNNINGNUM=1
    
    echo -e "`date "+%Y-%m-%d %H:%M:%S"` : The running $JOB_NAME job num is $RUNNINGNUM in 192.168.137.201 执行异常!!" | mail \
    -r "From: alertAdmin <${FROM_EMAIL}>" \
    -s "Warn: Skip the new $JOB_NAME spark job." ${TO_EMAIL}
    
    

    说明:FROM_EMAIL、TO_EMAIL都换成自己的邮箱来测哈!

    2)执行shell脚本发送邮件

    sh /root/shell/mail/mail_noattachment.sh
    

    接收到的邮件:【我TO_EMAIL里指定的2两个邮箱都收到了邮件】
    在这里插入图片描述

    3.4 Shell发送带附件的邮件

    1)准备2个附件:
    第一个log日志文件

    vim /root/shell/mail/error1.log
    

    文件内容为【加中文可以测试附件是否会中文乱码】:

    错误日志1:
    This is the exception 1.1...
    This is the exception 1.2...
    

    第二个log日志文件

    vim /root/shell/mail/error2.log
    

    文件内容为:

    错误日志2:
    This is the exception 2.1...
    This is the exception 2.2...
    

    2)编写shell脚本

    vim /root/shell/mail/mail_attachment.sh
    

    文件内容为:

       #!/bin/bash 
       
       FROM_EMAIL="131413688@qq.com"
       TO_EMAIL="100861008@qq.com,100861999@qq.com"
       LOG1=/root/shell/mail/error1.log
    	LOG2=/root/shell/mail/error2.log
       
       echo -e "`date "+%Y-%m-%d %H:%M:%S"` : Please to check the fail sql attachement." | mailx \
       -r "From: alertAdmin <${FROM_EMAIL}>" \
       -a ${LOG1} \
       -a ${LOG2} \
       -s "Critical:DSHS fail sql." ${TO_EMAIL}
    

    3)执行shell脚本发送邮件

    sh /root/shell/mail/mail_attachment.sh
    

    接收到的邮件:
    在这里插入图片描述
    TO_EMAIL指定的邮箱都收到了带附件的邮件,且附件里的中文并没有乱码。

    3.5 Shell发送带附件的邮件(优化)

    3.4 虽然实现了发送附件的功能,但邮件标题和发送哪些附件都是写死在shell脚本中的,灵活性不够,难道每次发个邮件还得修改shell脚本?
    所以生产上是把邮件标题、发送哪些附件等信息,通过参数传入的。

    1)编写shell脚本

    vim /root/shell/mail/mail_attachment2.sh
    

    文件内容为:

     #!/bin/bash
     
     # $#表示参数个数
     if [ $# -lt 2 ]; then
         echo "Error:Missing parameters"
         echo "Useage: sh mail_attachement.sh <mail-title> <attachment1> <attachment2> ..."
         exit 1
     fi
     
     FROM_EMAIL="131413688@qq.com"
     TO_EMAIL="100861008@qq.com,100861999@qq.com"
     
     #从第2个参数开始,用-a拼出要发送的附件
     first=1
     attachment=""
     for i in "$@"
     do
         if [ $first -eq 1 ]; then
             first=0
         else
             attachment="$attachment  -a  $i "
         fi
     done
     
     echo -e "`date "+%Y-%m-%d %H:%M:%S"` : Please to check the fail sql attachement." | mailx \
     -r "From: alertAdmin <${FROM_EMAIL}>" \
     $attachment \
     -s "$1" ${TO_EMAIL}
     
    

    注意点:
    for i in “$@” 这里有个坑,$@ 带上双引号是将每个参数都看作一份数据,彼此之间是独立的,这样能避免一个带空格的参数被拆分成多个参数的问题。

    2)执行shell脚本发送邮件【指定邮件标题时故意带了个空格,哈哈】

    sh /root/shell/mail/mail_attachment2.sh "Hadoop HDFS启动失败" /root/shell/mail/error1.log /root/shell/mail/error2.log
    

    接收到的邮件:
    在这里插入图片描述

    展开全文
  • Ubuntu mail命令发送邮件

    万次阅读 2017-09-08 13:05:21
    ubuntu server 14.04 从命令行发邮件安装mailutilssudo apt-get install mailutils接下来进行默认安装就行了。Postfix Configuration 需要记住这里的System mail name,后面会用到。发送邮件 用一行命令发送邮件 ...

    ubuntu server 14.04 从命令行发邮件

    安装mailutils

    sudo apt-get install mailutils

    接下来进行默认安装就行了。Postfix Configuration
    这里写图片描述

    这里写图片描述

    这里写图片描述
    需要记住这里的System mail name,后面会用到。

    发送邮件

    • 用一行命令发送邮件

    给邮箱example@qq.com(改成你自己要发送的邮箱)发封邮件。邮件主题为Test email from ubuntu server!,内容为Here is the message body.。

    mail -s "Test email from ubuntu server!" example@qq.com <<< 'Here is the message body.'
    echo 'Here is the message body.' | mail -s "Test email from ubuntu server!" example@qq.com

    以上两条命令可以得到同样的效果。其中,-s 参数指定邮件的主题。
    运行以上命令后,去邮箱(example@qq.com)里查看是否收到邮件。如果收件箱里没有,可能在垃圾邮件里。

    • 使用mail的命令提示发送邮件

    给peter@qq.com 发送邮件,并抄送给john@qq.com。邮件主题为Test Subject,内容为Merry christmas

    mail -s 'Test Subject' peter@qq.com

    输入该命令后回车,提示Cc:,这时输入抄送邮件地址john@qq.com,然后回车。
    继续输入邮件正文内容Merry christmas,正文输入结束后,按Ctrl-D 结束输入并发送邮件。

    • 从文件中读取邮件内容并发送

    给邮箱example@qq.com发送邮件,邮件主题为Text message,邮件内容为/home/user/message.txt中的内容 。

    mail -s 'Text message' example@qq.com < /home/user/message.txt
    • 抄送与密件抄送

    给user1@qq.com发送邮件 ,并抄送给user2@qq.com,并密件抄送给user3@qq.com。

    mail -s 'Subject' user1@qq.com -c user2@qq.com -b user3@qq.com < message.txt

    -c表示抄送 ,-b表示密件抄送 。-c: carbon copy, -b: blind carbon copy。
    [貌似没有这两个参数了。]

    • 给多个邮箱发送邮件
    mail -s 'Subject' user1@qq.com,user2@qq.com,user3@qq.com < message.txt
    • 指定发件人姓名和地址
    echo "This is the message body" | mail -s "subject" user@qq.com -aFrom:sender@qq.com 

    使用-a参数追加邮件头信息,用来指定发件人姓名和地址。
    或者

    echo "This is the message body" | mail -s "subject" user@qq.com -aFrom:John\<john@qq.com\>
    • 给本机的其他用户发送邮件
    mail -s "hello, this is a test!" username
    mail -s "hello, this is a test!" username@ubuntu 

    这两种方法等价,第二种中的ubuntu是当前系统的主机名(hostname),见安装部分的最后一张图,系统邮件名默认的是主机名,也是ubuntu。

    添加附件

    echo "This is the message body" | mail -s "subject" user@qq.com -A /path/to/attached_file

    使用-A参数为邮件添加附件。

    或者使用另一个命令行工具–Mutt。

    -> 安装

     sudo apt-get install mutt

    -> 使用

    发送简单邮件

    echo "This is a mutt test" | mutt -s "This is mutts subject" example@qq.com

    发送附件邮件:

    mutt -s "Subject" -a /path/to/file_to_attached -- example@qq.com < /home/user/mailcontent.txt 

    -a参数添加附件(attach),后面跟附件所在的路径;mailcontent.txt是邮件正文内容。
    注意:附件文件和收件人之间需要使用–分隔。

    shell脚本发送邮件

    写一个shell脚本将硬盘使用情况发送到邮箱。使用du -sh查看硬盘使用情况。

    #!/bin/bash 
    #filename: report_disk_usage_to_email.sh
    du -sh | mail -s "disk usage report" user@yourmaildomain.com

    在第一部分–[安装mailutils]中的第三个图中可以看到,我的yourmaildomain.com是ubuntu。

    保存后退出编辑,然后运行该脚本,命令为:sh report_disk_usage_to_email.sh。

    查看邮件

    查看邮件直接在命令行里输入mail就列出了所有的邮件状态, 如图所示。如果没有未读邮件,则返回No mail for user。
    这里写图片描述

    在第三行显示有7封邮件,其中3封未读。
    第二列是邮件编号,最后一列是邮件主题,中间是收件日期。
    最后一行?提示符表示等待输入命令。

    输入邮件编号,回车后就可以打开该邮件进行阅读。
    输入z回车后退后邮件列表。
    输入q回车后退出。

    展开全文
  • linux shell 发送email 邮件

    万次阅读 2014-06-24 23:04:17
    方法一:简单邮件发送 echo “hello world" | mail -s "Subject" yanggang_2050@163.com 效果截图 方法二: 文本格式发送邮件 # !/bin/sh from_name="from@yanggan
  • 每天需要多次备份文件,所做操作比较机械化,所以就想在shell下自动帮我备份文件,开始想使用mail命令但是mail命令发邮件需要开启sendmail服务,我只是一台客户端,开个sendmail没有必要,于是乎,在网上找了好久,...
  • Ubuntu配置邮件发送

    2019-07-22 18:36:34
    sudoapt-getinstallheirloom-mailx vi/etc/s-nail.rc 在最后加入: set from=ys.liu@grandideals.com set smtp=smtps://smtp.exmail.qq...set smtp-auth-user=发送邮件邮箱 set smtp-auth-password=密码 set smtp-...
  • Ubuntu发送邮件

    2018-08-26 22:48:17
    一、Python版本 代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- ...3、发送 from email import encoders from email.header import Header from email.mime.text import MIMEText from email...
  • Ubuntu16.04环境。。。 定时任务,顾名思义,固定时间进行的任务。在Ubuntu中,可以使用crontab来设置定时任务。 crontab -l # 查看当前定时任务列表 crontab -e # 编辑定时任务 crontab -r # 清空定时任务。 先来一...
  • 因为毕业设计的关系,每天需要多次备份文件,所做操作比较机械化,所以就想在shell下自动帮我备份文件,开始想使用mail命令但是mail命令发邮件需要开启sendmail服务,我只是一台客户端,开个sendmail没有必要,于是...
  • Ubuntu安装发送邮件程序 apt-get install heirloom-mailx vim /etc/s-nail.rc 再最后加入 在最后加入: set from=0000@qq.com set smtp=smtps://smtp.qq.com:465 set smtp-auth-user=0000@qq.com set smtp-auth-...
  • 本文是亲自测试能发送邮件成功的实例。 1. 在ubuntu上安装sendemail。 apt install sendemail 2. 查看sendemail的帮助 我只把常用的参数发出来。 sendEmail --help sendEmail-1.56 by Brandon Zehm <...
  • 1、安装和配置sendmail不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件。不过mail命令是依赖sendmail的,所以我们需要先检查安装和配置sendmail。一般系统...
  • Linux Shell邮件笔记

    千次阅读 2017-03-11 11:28:06
    Linux作为首屈一指的服务器级别的操作系统,邮件系统的使用非常简单(一行命令),虽然网上已经有很多Shell邮件的文章帖子已经足够参考使用(例如:http://blog.csdn.net/kevinew/article/details/9147951),这里...
  • Ubuntu 18.04 发送邮件

    2019-08-07 07:43:50
    安装 sendmail、sendmail-cf、mailutils 配置 sendmail 服务 修改 /etc/mail/sendmail.mc 找到 DAEMON_OPTIONS(`Family=inet, ...将 127.0.0.1 改为 0.0.0.0,这样才可以发送到本机之外的其他邮件服务器 生成配置...
  • 测试环境:Ubuntu 11.10 1. 安装mutt及msmtp软件 sudo apt-get install mutt sudo apt-get install msmtp 2. 编辑配置文件vi ~/.muttrc set sendmail="/usr/bin/msmtp" set use_from=yes set realname="Guobao Jiang...
1 2 3 4 5 ... 20
收藏数 4,001
精华内容 1,600
关键字:

ubuntu+shell发送邮件