环境

本机安装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. WEB数据挖掘(十三)——关联规则与序列模式(1)

    一.Apriori算法简介:  Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集. Apriori(先验的,推测的)算法应用广泛 ...

  2. 如何解除Windows XP的IIS连接数限制

    方法一: 开始 - 设置 - 控制面板 - 管理工具 - Internet 信息服务 - 默认网站 - 右键属性,把“网站”选项卡中“连接超时”下的复选框"保持HTTP连接"前的勾 ...

  3. SQL语句 & 查询表结构

    [group by] 对结果集进行分组,常与汇总函数一起使用. SELECT column,SUM(column) FROM table GROUP BY column HAVING 通常与 GROU ...

  4. 学习JQuery中文文档之get()函数

    前端大神群的群主告诉我们:学习一个框架最好的方法是去把官方文档研究一遍. 现在正式开始我的前端之路,从JQuery的中文文档开始. 基础不牢固,看起来有点慢,但是我会一直坚持下去的.把遇到的问题都记录 ...

  5. flume ng配置拓扑图

  6. ISO 9141-2 and ISO 14230-2 INITIALIZATION and DATA TRANSFER

    http://ecad.tu-sofia.bg/et/2005/pdf/Paper097-P_Dzhelekarski1.pdf INITIALIZATION Prior to any diagnos ...

  7. jQuery Mobile和PhoneGap混合开发

    其实二者并不影响,PhoneGap负责调用系统的接口,jQuery Mobile实现一些网页效果.PhoneGap开发请看上一篇文章,jQuery Mobile开发环境搭建如下:[请先阅读上一篇文章, ...

  8. cdoj 71 I am Lord Voldemort 水题

    I am Lord Voldemort Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/ ...

  9. JavaScript中事件捕获(Event capturing)-------------->由外向内,事件冒泡(Event bubblin)---------->由内向外

    addEventListener("click", function() {}, useCapture:false); <!DOCTYPE html> <html ...

  10. 【JavaScript】JavaScript回调函数

    什么是Javascript 回调函数? 函数和其他数据一样可以被赋值,删除,拷贝等,所以也可以把函数作为参数传入到另一个函数中. 这个函数就是所谓的回调函数   举例: //不带参数的case fun ...