linux服务器下发送邮件

系统管理人员经常会遇到对于设备或者任务的预警与通知,通常情况有发送短信、邮件等方式。发送短信一般来说需要有短信猫(硬件)或者调用libfetion给飞信用户发送。本文介绍几种简单的发送邮件的方式。

本文环境:Ubuntu 10.04
基础:
      Linux服务器发送邮件一般都是基于sendmail进行的,sendmail服务器提供对外的邮件发送功能。其他工具都是基于sendmail进行服务的。所以要在linux系统发送邮件,首先需要安装sendmail服务器安装方法:

  1. #sudo apt-get install sendmail

然后通过ps查看是否有sendmail进程,如果存在,则安装成功:

  1. #ps -ef|grep sendmail
  2. root 1282 1 0 13:39 ? 00:00:00 sendmail: MTA: accepting connections

成功安装sendmail后,就可以向邮件账户发送邮件了。

=====================分割线===============================

本文列出了在linux下常用的发送邮件的方法,供大家参考。
方法1:
直接使用sendmail,编辑如下文件a.sh,通过chmod 更改权限后执行就可以。

  1. #!/bin/bash
  2. /usr/sbin/sendmail -t << EOF
  3. From: Mail test <[email protected]>
  4. Sender: jkjl <[email protected]>
  5. To: [email protected]
  6. Cc: [email protected]
  7. Subject: mail testing
  8. ----------------------------------
  9. This is the mail content ...
  10. muhaha
  11. ---------------------------------
  12. EOF

man sendmail

-t参数的含义

-t     Read message for recipients. To:, Cc:, and Bcc: lines will be 
              scanned for recipient addresses. The Bcc: line will be deleted
              before transmission.

另外,sendmail默认从标准输入读入内容直到结束或者遇到".",-oi 就是认为遇到"."不再认为是结束符了。如下:
echo "hahaha.my"|sendmail -oi [email protected]

方法2:
利用mail工具发送,利用mail发送邮件必须安装mailutils

  1. sudo apt-get install mailutils

然后发送邮件

  1. $ mail -s "just a test" 收信人邮箱地址 < 要发送的邮件内容文件
  1. mail -s "haha" [email protected] < hello.txt

mail 工具的-t 可以跟多个用户,如下:

  1. mail -s Title -t [email protected] -t tes[email protected] < hello.txt

如果要发送带附件的邮件,则需要先安装uuencode,uuencode 在sharutils包中

  1. sudo apt-get install sharutils

然后再发送
uuencode 附件名 显示附件名| mail -s 题目 目的邮箱

  1. uuencode hello.txt bienvenu |mail -s Test [email protected]

如果按上面的方法,邮件只带一个附件,即将正文和附件组成联合文件发出。

方法3:
利用formail和sendmail联合发送:
formail可以封装邮件信息,然后调用sendmail发送,经典例子如下:

  1. echo hello|formail -I "From:[email protected]" -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:test"|sendmail -oi [email protected]

方法4:
使用mutt发送
mutt是一个linux下非常好用的email程序,最典型的一个例子如下:

mutt -s "Test mail" [email protected] -a test.jpg < hello.txt
其中:s—主题  a—附件
最后追加的是邮件内容 mutt甚至可以使用pgp加密,利用mutt支持MIME,解决乱码问题等,总之mutt是个人认为的最好用的email工具。

本期知识就介绍到这里,希望大家能有所收获。分享一句话:要有梦想,即使它看似遥远。

时间: 2024-12-28 16:36:21

linux服务器下发送邮件的相关文章

linux服务器下配置多tomcat

车辆交易用的系统模块,正在做.老板要看看,以便车城那边的人提出意见.于是在服务器上再次增加一个tomcat. 以前是配置过的,配置过程其实很简单,这次太大意了,找了半天问题. 首先是拷贝一个tomcat,放到一个新的位置,这个tomcat就是我要用的新的tomcat. 然后去配置一下日志的输出位置,在bin目录下的catalia.sh或者startup.sh.网上怎么样配置的都有,呵呵. 然后修改server.xml,配置好虚拟目录和端口信息.在此,connector节点下的protocol一定

用linux服务器下的/dev/shm/来释放磁盘的压力

巧用linux服务器下的/dev/shm/来释放磁盘的压力 浏览:646 | 更新:2013-06-18 18:08 | 标签: 磁盘 tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的内存或swap分区来存储文件.由此可见,tmpfs主要存储暂存的文件.它有如下2个优势 : 1. 动态文件系统的大小.2. tmpfs 的另一个主要的好处是它闪电般的速度.因为典型的 tmpfs 文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的.同时它也有一个缺点  

Linux服务器下没有root权限装Matlab R2013a

Matlab R2013a Unix版下载地址 注意:由于我是在单位的集群系统上装Matlab,没有root权限,故下载下来的.iso文件不能在linux下用mount命令挂载,故先在Win下解压,再将解压后的文件上传至服务器. 由于没有root权限,所有需要安装的内容都装在自己的家目录下. 另外,如果你也是在高性能计算集群上装,最好在登陆节点上装,因为我开始是在计算节点上装总是报错 - -# 平台:系统内核:x86_64.操作系统:CentOS release 6.3 (Final) ====

在linux服务器下日志提取的python脚本(实现输入开始时间和结束时间打包该时间段内的文件)

1.需求:近期在提取linux服务器下的日志文件时总是需要人工去找某个时间段内的日志文件,很是枯燥乏味,于是乎,我就想着用python结合linux指令来写一个日志提取的脚本,于是就有了以下脚本文件: 2.代码:getlogzip.py 1 import time,sys,os 2 3 filename1 = time.strftime('%m%d',time.localtime(time.time())) 4 filename2 = "log" 5 servername = inpu

持续集成:采用Xvfb+Selenium+Firefox搭建linux服务器下的自动化测试环境

自动化测试属于软件测试的一部分,QTP.LoadRunner等都可以编写自动化测试脚本,但是QTP.LoadRunner等工具毕竟还需要人工操作,在持续集成思想下,软件应该自动发布并且自动测试,这样可以加快软件的开发测试周期,及时发现软件错误.持续集成应该包括代码的自动化检查.版本的自动化发布.以及程序的自动化测试.在自动化测试之外,再辅助以人工测试. 在我负责的项目中,代码自动化检查采用了SVN+CheckStyle实现,前文已有介绍,版本自动化发布采用了Jenkins或者crontab+An

Caffe在Linux服务器下的安装及示例程序mnist测试

Caffe安装 首先需要从网站https://github.com/BVLC/caffe下载压缩包上传到Linux服务器,解压文件.然后执行make all,不报错则表示caffe已经编译好,export设置环境变量如下: export PYTHONPATH=~/caffe/python #caffe的路径下面的python mnist示例测试 首先进入caffe-master/data/mnist目录下,运行命令: $sh get_mnist.sh 然后在caffe目录下运行examples/

Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)

紧接上篇文章,Oracle数据库架构已经创建完成,我的需求是:将老服务器上的数据库迁移到新的数据库上. 这就用到impdp(导入)操作. 要想实现对新数据库的impdp(导入)工作, 首先需要从老的数据库上做expdp(导出)操作,命令如下: expdp 用户名/密码 schemas=iirspublish dumpfile=导出数据库名.dmp DIRECTORY=目录名 logfile=导出日志.log 备注:schemas,你用"用户 user"来理解就很容易了,每个模式(use

Linux服务器下nginx的安全配置

1.一些常识 linux下,要读取一个文件,首先需要具有对文件所在文件夹的执行权限,然后需要对文件的读取权限. php文件的执行不需要文件的执行权限,只需要nginx和php-fpm运行账户的读取权限. 上传木马后,能不能列出一个文件夹的内容,跟php-fpm的运行账户对文件夹的读取权限有关,木马执行命令的权限跟php-fpm的账户权限有关. 如果木马要执行命令,需要php-fpm的账户对相应的sh有执行权限. 读取一个文件夹内的文件,是不需要对文件夹有读取权限的,只需要对文件夹有执行权限. 1

Linux服务器下Java环境搭建

前言: 在centOS下,像阿里云等都预先设置了jdk,不过不是SUN的java JDK,一般情况要重新装jdk,而且一般情况下自己装的Jdk相对来说易控制版本,稳定性更高.所以以下是我卸载预装jdk并选定自己的版本来进行重新转载. 下面是具体的安装流程:(记录只为更好的分享) 1.首先在163服务器查询java的jdk版本: 然后访问oracle官网下载jdk,也可以直接访问以下网址,下载JDK历史版本:http://www.oracle.com/technetwork/java/javase