`
天梯梦
  • 浏览: 13743580 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

Ubuntu 终端发邮件 Send Email from the command line in Ubuntu

 
阅读更多

Send Email from the command line in Ubuntu

To have the ability to send email from the command line, you will need to install the mailutils and postfix packages with the following commands.
apt-get install mailutils
apt-get install postfix
 
Now configure Postfix by running the following command.
dpkg-reconfigure postfix
 
There will be several options on the main screen. For me, I selected "Internet Site" and used all of the default settings. You may want to play around with other options such as "Internet with smarthost."

After configuring Postfix, test out the new configuration with the following command.
// no subject
echo "test" | mail me@mail.com

// method one
echo "here is text content " | mail -s "here is subject" me@gmail.com

// method two
mail -s "here is subject" me@gmail.com < here_is_text_content.text
 

from: http://tsengf.blogspot.com/2012/01/send-email-from-command-line-in-ubuntu.html

 

mail

NAME(名称)

mail - 发送和接收邮件

 

SYNOPSIS(总览)

mail [- iInv ] [- s subject ] [- c cc-addr ] [- b bcc-addr ] to-addr... 
mail [- iInNv - f ] [ name ] 
mail [- iInNv [- u user ] ][[]]

 

INTRODUCTION(介绍)

Mail 是一个智能化的邮件处理系统,它具有 ed1 的命令语法回忆功能,只是用消息替换了行罢了.

 

-v
详尽模式. 传输邮件的细节都呈现在用户的终端上.
-i
忽略tty中断信号. 这对于在嘈杂的电话线路上使用 mail 特别有用.
-I
强迫mail以交互模式运行,即使其不是通过终端输入的. 特别地,正在发送邮件时, `~ ' 特殊字符只在交互模式下才起作用.
-n
禁止在启动时读取 /etc/mail.rc
-N
当阅读邮件或编辑邮件夹时禁止消息头的初始化显示.
-s
在命令行上指定主题(仅把 -s 标识后的第一个参数用作主题;注意对包含空格的主题加上引号.)
-c
发送复件(carbon copy)给用户 list
-b
发送隐藏的复写副本(blind carbon copy)给用户 list list应为以逗号分隔的名字列表.
-f
读入你的 mbox (或指定文件) 中的内容进行处理;当你 quit 时, mail 会把未删除的消息写回该文件.
-u
相当于:

 

mail -f /var/spool/mail/user

 

 

 实例:

[root@linux ~]# mail -s 'test title' -c 95219454@qq.com < mail.txt   #将mail.txt发给95219454@qq.com

[root@linux ~]# mail 95219454@qq.com
Subject: nihao!    #邮件主题
nihao!  
linux 在线手册   #邮件内容Crl+D 完成内容输入

Cc: test@sina.com.cn

 

来源:http://l.51yip.com/search/mail

 

ubuntu安装postfix

postfix是一个smtp邮件服务器

 

1 为什么选择postfix

流行的smtp服务器还有sendmail,就个人感觉,sendmail的配置方式十分不友好,且据说性能和安全性都稍差一些。而postfix就是为了解决sendmail的一些问题而创建的。目前已经成为了非常流行的smtp服务器。

 

2 安装postfix

 

sudo apt-get install postfix

 

即可。

 

另外,postfix使用了syslog进行日志记录,然而ubuntu默认并没有安装,如果你是第一次使用postfix,查看log是非常重要 的,因此一定要装上syslog,安装之后,无需任何配置,即可在 /var/log/ 中查看到几个 mail 开头的log文件。

 

sudo apt-get install rsyslog
 

 

另外,postfix也使用了第三方模块cyrus-sasl实现smtp的验证服务,我并没有相关的需求,因此在此不再赘述,有类似需求的同学可参考其他文档。

 

3 配置postfix

postfix最重要的配置文件位于 /etc/postfix/main.cf ,在配置完成后,可通过

 

sudo /etc/init.d/postfix reload

 

重新加载配置文件生效。

 

postfix几个比较重要的配置:

  • myorigin

myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为user@domain.com,则该参数指定@后面的域名。缺省 地,postfix使用本地主机名作为myorigin,但是建议你最好使用你的域名,因为这样更具有可读性。比如:安装postfix的主机为 mail.domain.com则我们可以这样指定myorigin:

 

myorigin = domain.com
 

 

当然我们也可以引用其他参数,如:

 

myorigin = $mydomain
 

 

  • mydestination

mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix系统要接收什么样的邮件。比如:你的用户的邮件地址为user@domain.com, 也就是你的域为
domain.com, 则你就需要接收所有收件人为user_name@domain.com的邮件。与myorigin一样,缺省地,postfix使用本地主机名作为mydestination。如:

 

mydestination = $mydomain
mydestination = domain.com
 

 

  • notify_classes

在postfix系统中,必须指定一个postfix系统管理员的别名指向一个用户,只有这样,在用户遇到问题时才有报告的对象,postfix也 才能将系统的问题报告给管理员。notify_classes参数就是用来指定向postfix管理员报告错误时的信息级别。共有以下几种级别:

  1. bounce:将不可以投递的邮件的拷贝发送给postfix管理员。出于个人隐私的缘故,该邮件的拷贝不包含信头。
  2. 2bounce:将两次不可投递的邮件拷贝发送给postfix管理员。
  3. delay:将邮件的投递延迟信息发送给管理员,仅仅包含信头。
  4. policy:将由于UCE规则限制而被拒绝的用户请求发送给postfix管理员,包含整个SMTP会话的内容。
  5. protocol:将协议的错误信息或用户企图执行不支持的命令的记录发送给postfix管理员。同样包含整个SMTP会话的内容。
  6. resource:将由于资源错误而不可投递的错误信息发送给postfix管理员,比如:队列文件写错误等等。
  7. software:将由于软件错误而导致不可投递的错误信息发送给postfix管理员。

缺省值为:

 

notify_classes = resource, software
 

 

  • myhostname

myhostname 参数指定运行postfix邮件系统的主机的主机名。缺省地,该值被设定为本地机器名。你也可以指定该值,需要注意的是,要指定完整的主机名。如:

 

myhostname = mail.domain.com
 

 

  • mydomain

mydomain参数指定你的域名,缺省地,postfix将myhostname的第一部分删除而作为mydomain的值。你也可以自己指定该值,如:

 

mydomain = domain.com
 

 

  • mynetworks

mynetworks 参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问。你可以用标准的A、B、C类网络地址,也可以用CIDR(无类域间路由)地址来表示,如:

 

192.168.1.0/24
192.168.1.0/26
 

 

  • inet_interfaces

inet_interfaces 参数指定postfix系统监听的网络接口。缺省地,postfix监听
所有的网络接口。如果你的postfix运行在一个虚拟的ip地址上,则必须指定其监听的地址。如:

 

inet_interfaces = all
inet_interface = 192.168.1.1
 

 

4 测试

通过telnet,可测试邮件系统是否发送成功,在测试期间,通过:

 

tail -f /var/log/mail*
 

 

监控邮件发送log,可明确知道发送的问题在哪。

 

telnet localhost 25
 

 

如果正常,您将会看到以下来自 IMC 的响应:

 

220 xxx.xx Esmtp
 

 

键入以下命令开始进行通讯:

 

HELO :test@test.com
 

 

您应看到如下响应:

250 OK

键入以下命令来通知 IMC 邮件源于何处:

MAIL FROM: test@test.com

您应得到如下响应:

250 OK

键入以下命令来通知 IMC 邮件的目标地址。

RCPT TO: *******@qq.com

您应看到如下响应:

250 OK

键入以下命令以通知 IMC 您已准备好发送数据:

DATA

您应看到如下响应:

354 Send data.

键入以下命令以添加主题行:

Subject: test message

然后按两次 Enter 键。

该命令看不到任何响应。

备注: 两个 Enter 命令符合 RFC 822 规则,即 822 命令后必须跟空行。

键入以下命令来添加邮件正文:

This is a test message

您将看不到来自该命令的响应。

在紧接着的空行处键入句号(.),然后按 ENTER 键。

您应看到如下响应:

 250 OK

没有问题的话,你可以在log终端中看到postfix发送邮件的log,在****@qq.com中收到邮件了。

 

 

/etc/postfix/main.cf:
    myorigin = $myhostname (default: send mail as "user@$myhostname")
    myorigin = $mydomain   (probably desirable: "user@$mydomain")
 

 

 

5 参考文档:

http://www.centospub.com/make/postfix_smtp.html

http://linux.chinaunix.net/techdoc/net/2006/11/09/943684.shtml

 

 来源:http://jingwei.li/blog/?p=211

 

更多参看:

http://xiaozhuang.blog.51cto.com/4396589/865792

http://vbird.dic.ksu.edu.tw/linux_server/0380mail.php

https://help.ubuntu.com/community/PostfixBasicSetupHowto

https://help.ubuntu.com/community/PostfixVirtualMailBoxClamSmtpHowto

 

 

分享到:
评论

相关推荐

    commandlinetools-linux-7583922_latest.zip

    标题中的"commandlinetools-linux-7583922_latest.zip"指的是Android的命令行工具包,这是Google提供的一套用于管理Android SDK的工具集合。这些工具允许开发者在命令行界面执行各种任务,包括但不限于安装、更新、...

    让ubuntu终端支持鼠标粘贴的安装包

    标题 "让ubuntu终端支持鼠标粘贴的安装包" 指的是一个针对Ubuntu操作系统的解决方案,目的是让其内置的GNOME终端(gnome-terminal)支持鼠标选择文本后自动复制以及通过鼠标右键进行粘贴的功能。这个功能在很多现代...

    ubuntu终端配色方案

    在Ubuntu操作系统中,终端是开发者和系统管理员日常工作中不可或缺的一部分。为了提高工作效率并减少眼睛疲劳,自定义终端的配色方案变得尤为重要。"ubuntu终端配色方案" 是一个旨在优化Ubuntu终端显示效果的项目,...

    ubuntu安装串口终端kermit

    ### Ubuntu安装串口终端Kermit详解 #### 一、前言 随着嵌入式系统的广泛应用,串口通信成为了一种常见的数据交换方式。在Linux系统中,尤其是Ubuntu发行版中,用户经常需要通过串口与各种设备进行交互。本文将详细...

    ubuntu终端打开文件

    ubuntu如何再终端中打开所需要的文件

    Ubuntu终端搭建Clion开发环境

    本资源适用linux开发初学者,资源主要内容是Ubuntu终端搭建Clion开发环境流程步骤,开发环境搭建完成后,即可在Linux系统开发和运行C++程序。资源中针对遇到的搭建环境问题均给出截图和解决方案,亲测有效,希望对...

    ubuntu中如何将终端添加到右键

    ### 如何在Ubuntu中将终端添加到右键菜单 在Ubuntu等Linux发行版中,用户经常需要使用终端来执行各种任务。为了提高效率,可以将终端快捷方式添加到文件管理器(如Nautilus)的右键菜单中。本文将详细介绍如何在...

    Linux中重定向及管道(ubuntu 终端命令).txt

    Linux中重定向及管道(ubuntu 终端命令).txt

    ubuntu打开终端的方法

    ### Ubuntu打开终端的方法 在Ubuntu系统中,终端是进行各种操作的强大工具之一。无论是系统管理、软件安装还是脚本编写,掌握如何快速有效地打开终端都是非常重要的。本文将介绍三种常用的打开Ubuntu终端的方法,并...

    ubuntu下如何通过mail命令发送邮件

    ### Ubuntu下通过Mail命令发送邮件 #### 一、引言 在Linux环境下,尤其是Ubuntu操作系统中,使用命令行工具发送电子邮件是一种非常实用的功能。本文将详细介绍如何在Ubuntu系统中利用`mail`命令来发送邮件,并提供...

    ubuntu终端命令大全

    Ubuntu 终端命令大全 Ubuntu 终端命令大全是 Linux 系统中最重要的命令集合,它们可以帮助用户更好地管理和使用系统。本文将详细介绍 Ubuntu 终端命令大全,包括文件目录类、驱动挂载类、程序安装类、压缩解压类、...

    Ubuntu终端Terminal常用快捷键.txt

    Ubuntu终端Terminal常用快捷键.txt

    adb putty工具(配置颜色类似ubuntu终端)

    在“adb putty工具(配置颜色类似ubuntu终端)”的场景下,用户显然希望在使用Putty连接Android设备时,能够享受到类似于Ubuntu终端的色彩体验。Ubuntu终端以其清晰的配色方案著称,良好的颜色区分对于长时间编码和...

    Mastering Ubuntu Server(PACKT,2016)

    The book will then demonstrate how to access and share files to or from Ubuntu Servers. You will learn how to create and manage databases using MariaDB and share web content with Apache. To ...

    An A-Z Index of the Linux Command LIne

    bg Send to background bind Set or display readline key and function bindings • break Exit from a loop • builtin Run a shell builtin c bzip2 Compress or decompress named file&#40;s&#41;

Global site tag (gtag.js) - Google Analytics