利用外部邮箱发送邮件的方法

bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置很麻烦,并且会带来不必要的

资源占用。而通过改动配置文件能够使用外部SMTPserver,能够达到不使用sendmail而用外部的smtpserver发送邮件的目的:

改动/etc/nail.rc (/etc/mail.rc)

set from=fromUser@domain.com smtp=smtp.domain.comset smtp-auth-user=username smtp-auth-password=passwordset smtp-auth=login
说明:

from是发送的邮件地址

smtp是发生的外部smtpserver的地址

smtp-auth-user是外部smtpserver认证的username

smtp-auth-password是外部smtpserver认证的用户密码

smtp-auth是邮件认证的方式

配置成功后,就能够使用了

能够发送一封邮件測试一下:

mail -s "test" user@sohu.com <content.txt 当中-s后面的是邮件标题,user@sohu.com是收件人地址,content.txt里面是邮件正文

以上内容转自: http://www.diybl.com/course/6_system/linux/Linuxjs/20091119/182839.html

我试了一把,2006年之前注冊的163邮箱能够的,tom邮箱都是能够的

postfix

postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件,想成为sendmail替代产品,它试图成为更快、更easy管理、更安全的MTA,

  安装:

  rpm -ivh /mnt/cdrom/Server/postfix-2.3.3-2.i386.rpm postfix主程序

  rpm -ivh /mnt/cdrom/Server/postfix-pflogsumm-2.3.3-2.i386.rpm postfix日志工具

  rpm -ivh /mnt/cdrom/Server/dovecot-1.0-1.2.rc15.el5.i386.rpm POP程序

  首先查看是否安装过postfix服务,用rpm –qa |grep postfix ,

  

  我这里是装过的,在这里先用rpm –e postfix删除postfix,然后再安装

  

  相同,需查看是否有安装过POP,这个服务用的是dovecotserver,这里我也装过,删除后又一次安装就可以

  

  

  安装后是不是就能够直接执行了呢?

  

显然是不行的,它的一些必要的參数没有生效是不能执行的,以下改动几个经常使用的选项:

  Hostname 邮件主机的FQDN

  Mydomain 地机邮件主机所在的域

  Myorigin 本地邮件发送时的域名

  Mydestinatin 本地邮件接收是域名

  Inet_interface 邮件主机监听的port号

  Mynetworks 本地邮件server信赖的网络

  Relay_domain 本地邮件server传递的域

  Smtpd_banner 登录时显示的标题,最好是把详细的版本给隐藏起来(添加安全性)

  

  

  

  

  

  

  

  

这样就完毕了一个最主要的smtp的server了,当然还要做非常多事情,如限制收、发邮人,别名,虚拟域等等,以下重新启动看看效果怎样

  

  当然不要忘记了改动我们的POP服务设置,直接改动/etc/dovecot.conf ,把#protocols = imap imaps pop3 pop3s前面的#去掉就可以,重新启动看看:

  

  

  然后用我们最熟悉的Outlook登录,

  

  奇怪了?不会是postfix设置错了吧?先看看日志:

  Tail –f /var/log/maillog

  

  出现这个错就是dovecot的配置问题了?明明曾经直接改动dovecot支持的邮件接收方法即可了,这次为什么不行呢?试试telnet wudionline.com 25和telnet wudionline.com 110 看看

  

  

也都没问题啊,想想前两天装的时候这样配置明明是能够在outlook登录的啊,但前两天是这样的情况:

  能够用outlook登录,但outlook接收不到邮件,能够发邮件,收邮件能够在/var/spool/mail里看到,就是接收不到本地
outlook来,经网上參考,最好把#mail_location =
mbox:~/mail:INBOX=/var/mail/%u前的#去掉,就能够在本地收邮件了,经分析那里由于dovecot设置的邮件接收路径不
对,所以改一点就OK了,但这次是登录不上去啊,网上找了半天也没有答案,于是试试把 #mail_location =
mbox:~/mail:INBOX=/var/mail/%u,前的#去掉,

  

  重新启动看看

  

  真的登录成功了。试了一下收、发邮件都没有问题了。

  平时因为root账号默认接收系统各种错误日志,可是用root登录个人认为不太方便,于是想用一个普通用户也接收发给root的邮件,看了一下配置帮助文档,按这种格式就能够用别名的方式接收其他用户的邮件:

  root: wuzh

  当然得写入/etc/aliases文件中,这样当系统出错错误或其他的事件日志的时候,就会把日志附加一份发给wuzh这个普通用户了这个就不截图了:),改了过后直接发一封邮件给root,然后在wuzh这个账号里就能够看到邮件原文了

  另一个功能:虚拟域利用一个虚拟域名来代表实际域来收发邮件(以我这种低水平来说,我感觉我用不上,它仅仅能用于内部交流,假设与外界收发邮
件的时候虚拟域就无法在广域网上实行解析,也就是根本就接收不到邮件,)如图:我把我的域名wudionline.com改成
wudionline.net发信给我的还有一个邮箱

  

  发送人地址是变了,但是要回复那就难了…….看

  

  他的优点就是隐藏自己的域名,好让别人找不到他(假设操心别人找他的话….),当然还有其他的优点的,我的水平菜还不知道怎么用.等学会了再来更新……

  这里还是演示一下怎样设置吧:

  在main.cf里增加virtual_maps = hash:/etc/postfix/virtual, 这个是虚拟域的位置,还要往这个文件中增加内容,格式为:

  Wudionline.net anything

  wuzh@wudionline.net wuzh

  之后,用postmap命令生成虚拟域数据库:

  postmap /etc/postfix/virtual

  前面是虚拟用户,后面是系统用户,事实上收邮件还是系统用户收发的,仅仅是同意虚拟用户对其操作而已

postfix部分转自:http://www.webjx.com/server/linux-14673.html

自己主动发送邮件的脚本

记得在学校的时候,有一次和老师讨论问题,有一些不明确的地方,他说,你能够编个程序验证一下。我差点没有晕过去。由于那时的我非常害怕编程。只是还好,有非常多事情我们不须要编程就能够实现。

比方近期,我開始厌烦在桌子上面的两条电脑之间转来转去,于是我打算写一小段shell脚本,当linux/unix以下的工作完毕的时候,系统自己主动发送一个邮件到windwos以下通知我。

在Linux和Unix以下发送邮件很方便,假设仅仅是要发送一个消息,那么须要的命令就更简单了,仅仅只是不同的系统邮件server命令稍有不同。对于我,常常工作的电脑是HP的C8000工作站,它的系统是HP-UX,另一台也是HP,安装的是redhat AS系统。

HP-UX的邮件程序须要在terminal以下输入:mail命令,然后进去写信,而redhat的邮件发送程序就比較方便,仅仅要一条命令就能够指定主题、附件、内容:

echo "Content:The work is done" | mail -s "This is subject" mwang@veryword.com

以下这一段脚本就是通过某一个文件是否已经生成进行推断,假设生成了就发送通知邮件到指定邮箱。否则就每30秒钟检查一次,有完毕的就发送通知邮件,有没有完毕的就休眠后继续循环,一直到所有完毕再退出。

#!/bin/csh 
set arrayA = ($*)
set i=1
set SysInfo = `uname`
set arrayB = ()
while ( $i <= $#arrayA )
if ( -f ${arrayA[$i]}/result_data.txt) then
if ($SysInfo == HP-UX ) then
mail mwang@veryword.com << !
Subject:'${arrayA[$i]} is finished'
'${arrayA[$i]} is finished'
.
!
else
echo "${arrayA[$i]} is finished" | mail -s "${arrayA[$i]} is finished" mwang@veryword.com
endif
echo "${arrayA[$i]} is finished, a mail is sent to mwang"
else
set arrayB = ( $arrayB $arrayA[$i] )
endif if ( ( $i >= $#arrayA ) && $#arrayB) then
set arrayA = ($arrayB)
echo "$arrayA is under calculation, please wait. Now: " `date`
set arrayB = ()
set i = 0
sleep 30
endif
@ i++ end 转自 http://www.veryword.com/2008/11/10/auto-send-mail-script.html

linux下用mail发送邮件的更多相关文章

  1. Linux下使用mail发送邮件

    邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件.下面以CentOS为例 1.安装 [root@vm8028 ~]# mail -bash: mail: ...

  2. Linux下使用mail命令发送邮件

    因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...

  3. Linux系统下使用 mail 发送邮件

    邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件.下面以CentOS为例 1.安装: [app@127-0-0-1 ~]# mail -bash: mai ...

  4. Linux下配置mail使用外部SMTP发送邮件

    修改/etc/mail.rc,增加两行:指定外部的smtp服务器地址.帐号密码等. # vi /etc/mail.rc set from=demo@qq.com smtp=smtp.qq.com se ...

  5. Linux下用mail 命令给163邮箱发送邮件!

    linux上的邮件客户端比较多,找一个平时用的比较多mail命令来试试!! 环境 :centos7: 注意 : 服务器必须得有外网才行,qq邮箱作为在linux上的发送端邮箱,经过测试 163 和qq ...

  6. Linux 下通过mail命令发送邮件

    mail -s "测试"  1968089885@foxmail.com 需要先配置smtp服务器

  7. Linux下使用sendmail发送邮件

    现在每天需要将统计数据发送给指定的人员. 使用原始手工的方式每天发送很麻烦,于是想改成一个定时任务,让服务器自动发送. 技术告诉我说他有写过sendmail的一个脚本. 我尝试使用了一下,发现 ser ...

  8. Centos7下使用mail发送邮件配置

    参考文档:https://blog.csdn.net/lyf844692713/article/details/81479066 安装环境查看 查看服务是否安装 rpm -qa|grep mail 如 ...

  9. LINUX下的Mail服务器的搭建

    电子邮件是因特网上最为流行的应用之一.如同邮递员分发投递传统邮件一样,电子邮件也是异步的,也就是说人们是在方便的时候发送和阅读邮件的,无须预先与别人协同.与传统邮件不同的是,电子邮件既迅速,又易于分发 ...

随机推荐

  1. 给进程分配cpu核心

    新负责的程序采用生产者和消费者的模式,生产者的速度非常快,数据几乎都在内存里,处理起来很快.而消费者要频繁的I/O.所以打算给生产者和消费者分配不一样的核心. 生产者只需要一个核心就够了,其余分配给消 ...

  2. CentOS 7 下yum安装xtrabackup备份工具

    第一步:安装xtrabackup的数据库 yum install https://www.percona.com/redir/downloads/percona-release/redhat/late ...

  3. Apache开启expires响应头,优化缓存

    apache开始expires响应头输出 expires是什么 指示资源什么时候过期的时间值(GMT时间),在指定的过期时间前,浏览器可以直接使用自身缓存的版本,而不用向服务器发请求,大大减轻服务器压 ...

  4. 深入GDI图像显示

    摘  要:本文首先给出了一种结合了DIB和DDB两种位图优点的图像显示方法,其次对GDI函数的高级应用,如透明位图显示.图像旋转显示.图像镜像显示进行了研究. 关键词:GDI图像显示,特殊GDI函数的 ...

  5. IOSJSBRIGE商品内容模板

    <p> 内容 </p> <script> window.onerror = function(err) { log('window.onerror: ' + err ...

  6. zyUpload界面绝佳、体验超棒的HTML5上传插件

    一.为毛线开发它 经过了两个星期做出了两个基于HTML5的多文件上传插件,之前在做网站的时候用到文件上传这一个功能,但是大多说都是基于Flash的,正好最近HTML5很火,而且渐渐壮大起来,感觉搞前端 ...

  7. nyist 303序号互换(数学推理)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=303 思路: 开始看错题了,以为最多只有两个字母. 字母转数字的表达式很容易看出来是:(2 ...

  8. 高效的SQLSERVER分页查询(推荐)

    Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询 ...

  9. JDBC Connection Reset问题分析

    2014年7月13日 半年前開始.项目组測试MM在验证功能时.常常报怨讲測试环境上的应用在启动时非常慢,偶尔会报失败,遇到类似问题多数情况下又一次启动一次就能够启动成功,但少数时候也有重复启动不成功的 ...

  10. HTML5 新增通用属性

    一:HTML5保留的常用元素 7. 表格相关元素.表格在html里还算重要的了.   <table>  :用于表格定义.    cellpadding: 单元格内容和单元格边框距离    ...