linux 命令行发送邮件及附件
环境
本机安装sendmail了, 但是没有启动. 其他机器上有mail server, 并且已经把本机加到open relay列表中了, 可以通过该mail server发送邮件。
做法如下:
1. 安装 sendmail-cf 软件包
2. 修改 /etc/mail/submit.mc
FEATURE(`msp'', `[127.0.0.1]'')dnl 修改为 FEATURE(`msp'', `[Your mail server ip]'')dnl
3. 在 /etc/mail/ 目录下执行 make
测试
mail -s ''hello world!'' user1@chxbd.com
或
mail -s ''hello world!'' user1@chxbd.com < "包含邮件文本内容的文件"
附件
1. 安装软件包 sharutils (使用其中的uuencode工具)
2. 把要发送的若干附件通过uuencode处理后整合到一个文件中(如attach.tmp)
3. 如果同时发送文本内容,把文本内容直接追加到附件文件中。
如果文本与附件交叉追加,只有第一次追加的以邮件正文显示,后续追加的会以txt文件的形式放到附件里。
4. 以 mail -s ''hello world!'' user1@chxbd.com < attach.tmp 的形式发送邮件
在邮件客户端显示时会自动把邮件正文和附件区分开
发件人
默认的发件人是当前登录用户的名称,如果未设置hostname,将在客户端显示为 user1@localhost.localdomain而被标记为垃圾邮件。
解决:
1) 设置 hostname
如果 hostname 为 sina.com,则发件人将显示为 user1@sina.com
2) 修改 /etc/hosts
在 127.0.0.1 对应的条目中(ipv4),在最前面(localhost.localdomain和localhost前,其中localhost.localdomain必须存在)添加主机名
如:
#127.0.0.1 localhost.localdomain localhost
127.0.0.1 126.com localhost.localdomain localhost
发件人将显示为 user1@126.com
如果 hostname 和 /etc/hosts 文件同时设置,而hostname又未在/etc/hosts中设置,则hostname 优先;
如果把自定义的域名和hostname同时设置在 /etc/hosts 中,则使用最前面的那个,如:
127.0.0.1 126.com node1.test.com localhost.localdomain localhost
126.com是发件人要显示的域名,node1.test.com 是 hostname 命令得到的主机名。
如此看来,发件人的域名与 hostname 命令得到的主机名有关,如果 hostname 命令得到的主机名在 /etc/hosts 中没有对应条目,则使用 hostname 得到的主机名,如果设置在了 /etc/hosts 中,则采用对应条目中的第一个主机名/域名。
linux 命令行发送邮件及附件的更多相关文章
- [原]Linux 命令行 发送邮件
1.mail -s hi xx@yy.com 给xx@yy.com发一封主题为hi的信(没有正文) 编辑完内容后Ctrl-D结束. 2.echo "This is a test mail!& ...
- Linux 命令行 发送邮件
1.mail -s hi xx@yy.com 给xx@yy.com发一封主题为hi的信(没有正文) 编辑完内容后Ctrl-D结束. 2.echo "This is a test mail!& ...
- Linux命令行技巧
Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...
- 像黑客一样使用 Linux 命令行
前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...
- 详解Linux命令行下常用svn命令
1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...
- linux 命令行 光标移动技巧
linux 命令行 光标移动技巧 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是 ...
- 在linux命令行下执行php 程序
如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...
- git代理,windows命令行代理,linux命令行代理
下载不动设置代理:git config --global http.proxy http://127.0.0.1:1080git config --global https.proxy https:/ ...
- [转]12款最佳Linux命令行终端工具
摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原 ...
随机推荐
- 12.组合(Composition)
组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合:它同样体现整体与部分间的关系,但此时整体与部分是不可分的,它们具有统一的生存期,整体的生命周期结 ...
- Using Eclipse With CloudStack
As part of switching to Apache Maven for building CloudStack, the .classpath and .project files used ...
- Builder
Builder模式的使用情景 相同的方法, 不同的执行顺序, 产生不同的事件结果 多个部件或零件, 都可以装配到一个对象中, 但是产生的运行结果又不相同 产品类比较复杂, 或者产品类中的调用顺序不同产 ...
- MyEclipse 8.5 开发环境配置,汉化,Aptana2.0插件,SVN 插件,Flex Builder 3/4 插件安装(转载)
转载地址http://elf8848.iteye.com/blog/630864 下载MyEclipse 8.5 可以通过代理http://www.proxyie.cn/访问MyEclipse的官方网 ...
- Delphi Data Type to C# Data Type
Delphi DataType C# datatype ansistring string boolean bool byte byte char char comp double currency ...
- 在sphinx中应用复杂过滤条件
一.问题的引入 在sphinx应用中,需要对数据进行复杂的条件过滤,刷选出我们需要的数据.这个过程,等同于mysql查询中的where条件. 但sphinx本身的filter并不能支持复杂的逻 ...
- jQuery打印Html页面自动分页
最近项目中需要用到打印HTML页面,需要指定区域打印,使用jquery.PrintArea.js 插件 用法: $("div#printmain").printArea(); 但还 ...
- Codeforces Round #335 (Div. 2) A. Magic Spheres 水题
A. Magic Spheres Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.codeforces.com/contest/606/ ...
- linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...
- Android输入输出机制之来龙去脉
openInputChannelPair( 阅读本文的前提条件是知道匿名管道和匿名共享内存是怎么一回事,否则阅读相应的文章. Anonymous pipes 和Anonymous Shared Mem ...