1安装postfix

1)下载安装包
   sudo apt-get install postfix
2)配置服务器

选择确定。

选择IneternetSite(通过SMTP发送和接收邮件),然后确定

输入邮件后缀名,比如如果你想设置你的邮箱地址为root@example.com,则此处系统邮件名称填写为example.com

3)安装syslog

进入到/var/log/
        cd /var/log/
查看是否安装syslog
       ls mail*
如果有mail.err、mail.warn、mail.info、mail.log等文件,说明你的系统中已经安装上了syslog,无需再安装了。
否则安装syslog:
sudo apt-get install rsyslog
另外,postfix也使用了第三方模块cyrus-sasl实现smtp的验证服务,需要的时候可以参考别的文档。

2测试

2.1  Mailutils方式

1)下载mailutils

sudo apt-get install mailutils

2)发送邮件

echo “邮件内容” | mail 收件人邮箱

eg:echo “hello”|mail root@example.com

3)查看发送结果

进入到/var/mail目录下,用ls命令查看是否有新建的文件,比如root或其他登录用户名相同的文件夹。如果有,用vi等查看命令打开就可以看到刚才发送的邮件。

如果没有,发送/usr/lib/sendmail –bp指令,若为

Mail queue is empty

说明邮件已经发送成功。否则,可以看到阻塞的邮件及原因。

如果邮件发送成功但是没有接收到,请查看/etc/postfix/main.cf文件是否正确。

2.2  Telnet方式

1)连接到本地

telnet localhost 25

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

220 xxx ESMTP Postfix

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

      HELO  : ***@***

例如HELO :root@example.com。其中,HELO和冒号之间一定要有空格。您应看到如下类似响应:

250 XXX

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

MAIL FROM: ***@***

例如MAIL FROM:root@example.com。您应得到如下类似响应:

250 2.1.0 OK

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

RCPT TO: ***@***

例如RCPT TO:root@example.com。您应看到如下类似响应:

250 2.1.5 OK

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

DATA

您应看到如下类似响应:

354 End data with <CR><LF>.<CR><LF>

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

Subject: test message

然后按两次 Enter 键。该命令看不到任何响应。

 

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

This is a test message

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

正文输入完毕回车换行,然后在空行处键入句号“.”,然后按 ENTER 键。您应看到如下类似响应:

250 2.0.0 Ok: queued as E4618143EE8

可以通过quit指令退出。没有问题的话,你可以在log终端中看到postfix发送邮件的log了。查看结果可以参照mailutils中的查看方法

注:

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

tail -f /var/log/mail*

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

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

smtp服务器搭建(实现本地通讯)的更多相关文章

  1. Vsftpd3.0--FTP服务器搭建之本地用户篇

    Vsftpd3.0--FTP服务器搭建之本地用户篇 年4月10日 19:23 FTP服务在工作中是经用到的一种工具,可以实现上传下载等功能.那么今天我们来聊一聊FTP服务器使用本地用户登录的实现模式. ...

  2. 一个关于发邮件的类,可以模拟发送对smtp服务器或者是本地文件夹

    namespace SportsStore.Domain.Concrete { public class EmailSettings { public string MailToAddress = & ...

  3. SRS服务器搭建,ffmpeg 本地推流,srs从本地拉流

    参考: https://github.com/ossrs/srs/wiki/v2_CN_SampleFFMPEG git clone https://github.com/ossrs/srs cd s ...

  4. SRS流媒体服务器搭建+ffmpeg推流VLC取流观看

    一.编译SRS https://github.com/winlinvip/simple-rtmp-server 目前有1.0-release.2.0.3.0等版本 2.0官方文档地址:https:// ...

  5. Linux搭建smtp服务器+laravel5.2发邮件配置

    /** * 这里主要是想通过自己搭建smtp服务器,配置laravel5.2框架,实现邮箱发邮件功能, * 主要内容是搭建smtp服务器,laravel5.2发邮件顺手提一下 */ /** * 1.l ...

  6. Git本地服务器搭建及使用详解

    Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...

  7. 本地测试SMTP服务器

    一年前看计算机网络里的电子邮件协议的时候,想自己建一个本地SMTP服务器,然后用telnet发送消息,后来是没找到.这次又翻看了一下,找了个Windows平台下的hMailServer,挺方便的.步骤 ...

  8. 搭建Git本地服务器

    搭建Git本地服务器 参考文章:http://www.ossxp.com/doc/git/gitolite.html 当前任务,学习中... 公司小范围用法: 服务器上做的: .在服务器上建立一个用户 ...

  9. linux下搭建svn本地服务器

    在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local  # svnadmin create led_diplay ...

随机推荐

  1. .Net程序员学习Linux(二)

    本次知识点:递归命令符,wc命令,文档编辑器 vi的简单使用,文本常用操作命令,find查询文件命令,grep匹配文本中对应的关键字 递归命令符 递归对于程序猿来说不默认,经常用于级联关系,一层套一层 ...

  2. ASP.NET MVC学习系列 WebAPI初探

    转自http://www.cnblogs.com/babycool/p/3922738.html 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax( ...

  3. 判断ios是app第一次启动

    首次运行的应用程序加入一些help 或者 宣传动画 现在变的很重要了. 一个有用的例子是发送一个分析实例.这可能是一个很好的方法来确定有多少人下载实用应用程序.有人会说:“但是,嘿,苹果AppStor ...

  4. .NET 互操作

    首先推荐一本书<精通.NET 互操作> ,这本书是目前中文资料里讲 互操作最详尽的书了. 做系统集成项目的同学应该都和设备打过交道(如视频设备:海康.大华等),在大多数情况下这些设备厂商会 ...

  5. windows phone 之手势识别(Manipulation)

    在Windows Phone 7的多触摸屏上可以检测到至少四根同时存在的手指,并且一起操作使触摸屏充分发挥效果. 在silverlight开发中通过事件来实现触屏事件的检测,包括低级别的和高级别的接口 ...

  6. 转载C#泛型集合—Dictionary<K,V>使用技巧

    1.要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib) 2.描述 1).从一组键(Key)到一组值(Value) ...

  7. 关于php的一些开源程序

    最好用的当属thinksns,目前更新到4.3.4, 社交型网站. 此网站提供大量源码,有时间可以去看看:http://down.admin5.com/

  8. 零售ERP开发(一)

    随着企业信息化不断提高,各种企业管理系统应用而生:怎么才能开发一套简洁.易用.功能健全的管理系统,尤其是能够帮助企业做出重大策略的系统,一致是我们追求的目标.近些年,接触的Erp系统主要包括国内比较知 ...

  9. jQuery的延迟对象

    之前看别人的demo,发现在延迟对象被resolve时要执行的代码,有时会写在deferred.then方法里执行,有时会写在deferred.done方法里执行. 这让对延迟对象一知半解的我非常困惑 ...

  10. Python环境搭建中解决C编译的问题

    下载必要文件 Python Microsoft Visual C++ Compiler for Python 2.7 setuptools 安装Python 安装VCForPython27 在命令行下 ...