环境

本机安装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 命令行发送邮件及附件的更多相关文章

  1. [原]Linux 命令行 发送邮件

    1.mail -s hi xx@yy.com 给xx@yy.com发一封主题为hi的信(没有正文) 编辑完内容后Ctrl-D结束. 2.echo "This is a test mail!& ...

  2. Linux 命令行 发送邮件

    1.mail -s hi xx@yy.com 给xx@yy.com发一封主题为hi的信(没有正文) 编辑完内容后Ctrl-D结束. 2.echo "This is a test mail!& ...

  3. Linux命令行技巧

    Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...

  4. 像黑客一样使用 Linux 命令行

    前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...

  5. 详解Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  6. linux 命令行 光标移动技巧

    linux 命令行 光标移动技巧 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是 ...

  7. 在linux命令行下执行php 程序

    如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...

  8. git代理,windows命令行代理,linux命令行代理

    下载不动设置代理:git config --global http.proxy http://127.0.0.1:1080git config --global https.proxy https:/ ...

  9. [转]12款最佳Linux命令行终端工具

    摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原 ...

随机推荐

  1. 转载linq to sql 的详解

    [转]LINQ To SQL 语法及实例大全 2011-11-26阅读38651 评论9 LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL ...

  2. 访问ControlTemplate内部的元素

    需要用到code behind 注意要给需要访问的元素命名x:Name="PART_TextBlock" <ResourceDictionary xmlns="ht ...

  3. Proxy代理(AOP实现原理)

    AOP基于动态代理实现:返回代理对象 java.lang.reflect 包Proxy 类,构造代理类.newProxyInstance() 就是创建代理对象的方法. Proxy.newProxyIn ...

  4. 移动端轮播图插件(支持Zepto和jQuery)

    一. 效果图 二. 功能介绍 1. 支持图片自动轮播和非自动轮播 2. 支持点击和滑动. 三. 简单介绍 代码都有注释,逻辑简单,不做更多赘述. 1. 在你的html中添加一行. <sectio ...

  5. 转载:rebar和erlang

    使用rebar生成erlang release 并进行热代码升级 http://blog.sina.com.cn/s/blog_6530ad590100wmkn.html 使用rebar工具开发erl ...

  6. 转载:linux vi命令详解

    转自:http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html 刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编 ...

  7. 【6】连续序列和为s

    题目:输入一个整数s,打印出全部和为s的连续整数序列(至少含有2个数).比如输入9,则输出2.3.4和4.5两个序列 方案一:因为序列至少要2个数,则两个数上限值为(1+s)/2,我们能够枚举该序列的 ...

  8. COM组件入门(一)

    近期须要用到COM组件的知识,看了看COM编程指南,感觉还不错.把我的学习心得记录下来.这是我依据教程写的demo StopWatch接口实现部分,接口部分我的项目是动态库,主要源代码例如以下: 完整 ...

  9. 【C#】ASP.NET网页中添加单点登录功能

    背景 首先,要说明的是,原先需求定义的是,同一个账号只能同时有一个人来登录,如果另外一个登录的话,前一个登陆者就自动被踢掉.本来原先要做成存储到服务器的数据库中,但是后来如果是非正常退出的话 下次就没 ...

  10. ueditor-图片上传是报错

    通过查看上面的图片中的[详细信息]可以看到是因为读取控件的路径的过程中错了导致的,因此需要用如下办法解决. 解决办法: 将ueditor.config.js中的一下代码中的路径修改为ueditor路径 ...