热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【基础部分】之SMTP相关配置

SMTP一、准备工作修改两个主机的主机名1.mailqq.qq.com2.mail163.163.com先配置dns邮件域名在mailqq.qq.com主机上配置dns配置etcn

SMTP

一、准备工作

修改两个主机的主机名 1.mailqq.qq.com 2.mail163.163.com

先配置dns 邮件域名 在mailqq.qq.com主机上配置dns

配置/etc/named.rfc1912.zones

配置qq.com 163.com 两个域名

技术分享

技术分享

二、配置邮件

mta: 邮件软件 postfix sendmail qmail

mtp:

1.先查看自己的mta是什么软件

alternatives --display mta

技术分享

2.配置 /etc/postfix/main.cf

技术分享

技术分享

技术分享

技术分享

两个主机都要写

3.配置火墙(两台主机都配置)

firewall-cmd --permanent --add-service=smtp

firewall-cmd --reload

163.com主机还需要配置 firewall-cmd --permanent --add-service=dns

firewall-cmd --reload

mailq: 邮件等待队列(未发出去的邮件会存在这)

postqueue -f 刷新邮件等对队列(重新发送一遍)

postsuper -d (邮件队列中的邮件编码) 删除该邮件

rm -fr /var/spool/postfix/maildrop/ (清空邮件队列)

/var/log/maillog (邮件日志)

三、远程发送

1.远程机器连接qq.com发送邮件

如果没有telnet先下载安装telnet

其他同网段机器 telnet 172.25.15.10 25

(qq.com主机) (25端口)

技术分享

ehlo hello (查看设备信息(打招呼))

mail from:root@qq.com (发送者)

rcpt to:root@163.com (接受者)

data (输入邮件内容)

2.拒绝某一个机器远程发送

postconf -d (查看默认配置)

postconf -e (修改或者添加选项直接将命令写入文件中) 写入到 /etc/postfix/main.cf

postconf -d | grep client

技术分享

postconf -e “smtpd_client_restrictiOns= check_client_access hash:/etc/postfix/access”

把 172.25.15.250 REJECT 写入 /etc/postfix/access

(被禁止的机器的IP)

postmap /etc/postfix/access (hash加密生成 .db 文件)

测试:

技术分享

3.禁止某一用户发送邮件

先删除掉上一步的禁止机器发送邮件

在/etc/postfix/access中删除 172.25.15.250 REJECT 那一行

postmap access (重新生成hash加密文件 access.db)

postconf -d | grep sender

查找到 smtpd_sender_restrictiOns= 那一行

postconf -e “smtpd_sender_restrictiOns= check_sender_access hash:/etc/postfix/sender”

/etc/postfix/sender 这个文件不存在 需要自己创建

vim /etc/postfix/sender

把 student@qq.com REJECT 写入该文件

postmap /etc/postfix/sender (hash加密 生成.db 文件)

重启 postfix 服务

测试:

技术分享

4.禁止某一用户接受邮件

Postconf -d | grep recip

查找到 smtpd_recipient_restrictiOns=

postconf -e

“smtpd_recipient_restrictiOns= check_recipient_access hash:/etc/postfix/dest”

自己创建 /etc/postfix/dest 文件

将 student@qq.com REJECT 写入到上文件中

postmap dest (hash加密该文件生成 .db 文件)

重启 postfix 服务

测试:

技术分享

5.空壳邮件服务器 (保护主服务器 空壳服务器不留存邮件 直接转发到主服务器)

两台机器 mailqq.qq.com 修改为 null.qq.com(空壳邮件服务器)

mail163.163.com 修改为 mailserver.qq.com (主服务器)

修改server主机的配置

vim /etc/postfix/main.cf

技术分享

技术分享

技术分享

技术分享

重启postfix服务

修改 null主机的配置

/etc/postfix/main.cf

技术分享技术分享技术分享

重启postfix服务

测试:

在空壳服务器上接受不到该邮件:

技术分享

在主服务器上收到了该邮件:

技术分享

6.远程接受邮件

安装 dovecot 软件

技术分享

firewall-cmd --reload

将端口添加到防火墙

vim /etc/dovecot/dovecot.conf

技术分享技术分享

接着配置 /etc/dovecot/conf.d/10-mail.conf

技术分享

测试: 在测试机器上安装 mutt 软件

在接收服务器上给student 发送邮件

在接受服务器上清空 邮件日志 排错

> /var/log/maillog

在测试机器上 输入指令 mutt -f pop://student@172.25.15.11

提示错误 查看接收服务器的邮件日志

技术分享

在studnet下创建 mkdir /home/student/mail/.imap

在接收服务器上清空 邮件日志 继续排错

> /var/log/maillog

继续在测试机器上 输入指令 mutt -f pop://student@172.25.15.11

提示错误 继续查看接收服务器的邮件日志

技术分享

在student下

touch /home/student/mail/.imap/INBOX

在测试机器上 输入指令 mutt -f pop://student@172.25.15.11

成功

7.postfix 数据库

yum install mariadb mariadb-server php php-mysql http -y

技术分享

技术分享

安全初始化 mysql

mysql -uroot -predhat

CREATE USER postfixuser@localhost identified by ‘redhat’ (创建数据库用户)

GRANTS SELECT,INSERT ON emali.* TO postfixuser@localhost;(给用户添加权限)

创建数据库 创建数据表

1.图形界面模式

下载phpMyAdmin-3.4.0-all-languages.tar.bz2

tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/

将解压后的文件 修改名字为 mysqladmin

cp -p config.sample.inc.php config.inc.php

修改 config.inc.php 中添加 COOKIE

firewall-cmd --permanent --add-service=http

firewall-cmd --reload

通过火狐浏览器 登陆 创建数据库和表(很简单)

表有4个列 username password domain(域名) maildir (mail存放目录)

2.命令模式

CREATE DATABASE email (创建email数据库) 创建表如下

技术分享

录入数据

技术分享

3.网络用户邮件服务配置

写文件 /etc/postfix/my-emailuser.cf

where_field = username (在哪一列查找所输入的内容)

技术分享

写文件 /etc/postfix/my-emaildomain.cf

技术分享

写文件 /etc/postfix/my-emailmaildir.cf

技术分享

检测这几个文件

技术分享

技术分享

技术分享

在主机上创建 用户vmail uid=1092 gid=1092

将指令写入到文件中 /etc/postfix/main.cf

技术分享

上述命令通过指令 postconf -d | grep virtual 可查找到

重启服务

测试: mail@test.163.com

写入内容,发送成功。 cd /home/vmail/163.com/test/ 查看文件内容 为 邮件内容。

邮件底层发送接收服务架设

通过dovecot 收取 邮件

postfix dovecot

1.邮件服务器的配置

yum install dovecot -y

vim /etc/dovecot/dovecot.conf

技术分享

技术分享

vim /etc/dovecot/conf.d/10-auth.conf

技术分享

上面的文件可以看出来 要去修改auth-sql.conf.ext 文件

查看 auth-sql.conf.ext

技术分享

可以看出 文件内容要求复制

/usr/share/doc/dovecot-2.2.10/example-confis/dovecot-sql.conf.ext

到 /etc/dovecot/ 下

接着配置该文件(/etc/dovecot/dovecot-sql.conf.ext)

技术分享

技术分享

技术分享(密码类型为明文)

技术分享

技术分享

%u: username

%n: user@domain 中的 user

%d: user@domain 中的 domain

%h: home directory

接着修改 /etc/dovecot/conf.d/10-mail.conf

技术分享

在邮件服务器的机器上 安装 dovecot-mysql 软件

重启服务

测试:

在其他测试机器上 telnet 172.25.15.10 110

技术分享

接着在测试机器上 安装 雷鸟邮件客户端

yum install thunderbird-31.2.0-1.el7.x86_64.rpm

技术分享

选择左下角

技术分享

添加数据库里有的 邮件账户

技术分享

技术分享

即可登陆成功

技术分享

【基础部分】之SMTP相关配置


推荐阅读
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
  • 本文详细介绍如何在 iOS 7 环境下申请苹果开发者账号,涵盖从访问开发者网站到最终激活账号的完整流程。包括选择个人或企业账号类型、付款方式及注意事项等。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本篇文章介绍如何将两个分别表示整数的链表进行相加,并生成一个新的链表。每个链表节点包含0到9的数值,如9-3-7和6-3相加得到1-0-0-0。通过反向处理链表、逐位相加并处理进位,最终再将结果链表反向,即可完成计算。 ... [详细]
  • CentOS 系统管理基础
    本文介绍了如何在 CentOS 中查询系统版本、内核版本、位数以及磁盘分区的相关知识。通过这些命令,用户可以快速了解系统的配置和磁盘结构。 ... [详细]
  • 本文详细探讨了 PHP 中 method_exists() 和 is_callable() 函数的区别,帮助开发者更好地理解和使用这两个函数。文章不仅解释了它们的功能差异,还提供了代码示例和应用场景的分析。 ... [详细]
author-avatar
Twosssss
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有