电子邮件系统Email

2023-11-09 00:59
文章标签 email 电子邮件系统

本文主要是介绍电子邮件系统Email,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、相关知识
1、MUA:“邮件用户代理”,用于用户端,主要功能是接收邮件主机的电子邮件,并提供浏览访问的功能

2、MDA:“邮件投送代理” ,将MTA 接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),或者再经由MTA将信件送到下个MTA

3、MTA(Mail Transfer Agent):MTA是用在邮件主机上的软件,主要的邮件服务器。MTA就是“邮件传送代理”,负责用户寄信与收信

4、MRA(Mail Retrieval Agent):负责实现IMAP与POP3协议,与MUA进行交互 (Dovecot)协议:

SMTP(Simple Mail Transfer Protocol)传输发送邮件所使用的标准协议 TCP 25 端口
IMAP(Internet Message Access Protocol)接收邮件使用的标准协议之一 TCP 143 端口
POP3(Post Office Protocol 3) 接收邮件使用的标准协议之一 TCP 110 端口

二、工作原理
在这里插入图片描述

简述:
1、sohu的Smtp服务器开始处理xdp@sohu.com 用户的请求,它会根据收件人的地址判断,当前收件人是不是自己管辖的用户,如果是,就直接将Email存放到为该收件人的分配的邮箱空间当中。sohu的Smtp服务器判断收件人地址
发现,这一封Email的收件人gacl@sina.com是Sina的邮件服务器管理的,于是又将Email转发给Sina的Smtp服务器

2、Sina的Smtp服务器开始处理sohu的Smtp服务器发送过来的Email,Sina的Smtp服务器根据收件人的地址判断,发现收件人自己管辖的用户,于是就直接将Email存放到为gacl@sina.com 用户的分配的邮箱空间当中

3、xdp@sohu.com 用户将邮件发出去之后,就通知gacl@sina.com 用户去收取。gacl@sina.com 用户于是就连接上Sina的POP3服务器收取邮件

4、POP3服务器从gacl@sina.com 用户的邮箱空间当中取出Email

5、POP3服务器将取出来的Email发给gacl@sina.com 用户

三、POSTFIX配置
在这里插入图片描述

步骤

1、配置DNS

1)关闭防火墙、selinux

 systemctl stop firewalldsetenforce 0

2)
cd /etc/yum.repo.d/
vi CentOS.repo
在这里插入图片描述

3 )

yum  install   ntpdate  wget  vim  bash-completion tree net-tools
ntpdate  ntp.gwadar.cn

2、发送邮件服务器的配置

Postfix 和 DNS 服务在 IP 地址为 192.168.76.131 的同一主机,主机名为 mail.wq.com,服务器应为 wq.com 本地域中的用户提供邮件服务以及远程邮件域邮件的中继转发,局域网网段为192.168.76.0/24

1)设置postfix服务器所在的主机的主机名

hostnamectl   set-hostname  mail.wq.com
echo "192.168.76.131 mail.wq.com" >> /etc/hosts
tail -1  /etc/hosts

2 )配置DNS服务

由于之前已配置好wq.com.zone 只需修改

cd  /var/named
vi  wq.com.zone

在这里插入图片描述

3)

host  -n -t mx  wq.com 192.168.76.131

在这里插入图片描述

4 ) 安装完postfix

vi /etc/postfix/main.cf

设置运行postfix 主机的FQDN(完全合格域名)

#myhostname = host.domain.tld 调整为:myhostname = mail.wq.com

设置运行postfix 主机的域名

#mydomain = domain.tld 调整:mydomain = wq.com

由本机寄出的邮件所使用的域名或主机名称

#myorigin = $mydomain 调整为:去掉注释行

设置 Postfix 监听的网络接口。如果要与外界通信,就需要监听网卡的所有 IP

inet_interfaces = localhost 调整为:inet_interfaces = all

可接收邮件的主机名或域名。来自其他主机名或域名的邮件将拒绝接收

mydestination = $ myhostname,localhost. $ mydomain,localhost
调整为:mydestination = $ myhostname,localhost.$mydomain, localhost, $mydomain

可转发(Relay)来自哪些 IP 地址或子网的邮件。其他子网邮件将拒绝转发(基于 IP 的转发)

#mynetworks =168.100.189.0/28,127.0.0.0/8 调整为:mynetworks = 192.168.76.0/24, 127.0.0.0/8

可转发(Relay)来自哪些域名或主机名的邮件(基于域名的转发)

#relay_domains = $mydestination 调整:去掉默认行首的注释“#”号

设置邮件存储位置和格式,postfix 支持两种邮箱存储方式

#home_mailbox = Maildir/ 调整:去掉行首的注释“#”号

5)重启postfix

systemctl start postfix
ststemctl enable postfix

6 )创建两个账号分别用来发送和接受邮件

useradd  xiao
echo "123" | passwd --stdin xiao
useradd yan
echo "123" | passwd --stdin yan

7 )开始测试(telnet)

yum install telnet -y

[root@mail named]# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.wq.com ESMTP Postfix
HELO localhost
250 mail.wq.com
MAIL FROM:xiao@wq.com
250 2.1.0 Ok
RCPT TO:yan@wq.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject:test mail
hello
this is test mail
.
250 2.0.0 Ok: queued as 01C1930C2D9C
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

8 )在/home/yan/Maildir/new中查看是否邮件发送成功

 ls /home/yan/Maildir/new/

在这里插入图片描述
发送成功

3、接收邮件服务的配置

1)安装dovecot

yum install dovecot

2 )配置dovecot 服务

vi /etc/dovecot/dovecot.conf 
修改为以下内容:
protocols = imap pop3 lmtp
listen = *, ::
login_trusted_networks =192.168.76.0/24

3)

 vi /etc/dovecot/conf.d/10-mail.conf 修改为:  去掉注释行mail_location = maildir:~/Maildir

4)启动dovexot 服务

systemctl  start  dovecot
systemctl enable dovecot

5 ) 收信测试

telnet localhost 110
由于此前发送过邮件,所以查看第五封邮件

[root@mail named]# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
USER yan
+OK
PASS 123
+OK Logged in.
LIST
+OK 5 messages:
1 414
2 402
3 402
4 1490
5 407
.
RETR 5
+OK 407 octets
Return-Path: <xiao@wq.com>
X-Original-To: yan@wq.com
Delivered-To: yan@wq.com
Received: from localhost (localhost [IPv6:::1])by mail.wq.com (Postfix) with SMTP id 01C1930C2D9Cfor <yan@wq.com>; Wed,  5 Dec 2018 03:38:18 +0800 (CST)
Subject:test mail
Message-Id: <20181204193831.01C1930C2D9C@mail.wq.com>
Date: Wed,  5 Dec 2018 03:38:18 +0800 (CST)
From: xiao@wq.com
Subject:test mail
hello
this is test mail
.
quit
+OK Logging out.
Connection closed by foreign host.

接收邮件成功

4、 使用Windows 客户端测试

以下可以是排错帮助:
1 ) 首先看看是否可以ping通,dns服务是否成功
2 )再看看网络状况是否良好
3 )邮件发送方与接收方是否正确登陆

下载foxmail ,测试
1)修改Windows的 hosts文件,将IP与域名绑定
可在c盘:/windows/drivers/system32/etc/hosts
在这里插入图片描述

2 ) 添加邮件账号
在这里插入图片描述

3)发送邮件

在这里插入图片描述

4)在Linux中可以同步看到接收邮件信息
在这里插入图片描述

测试成功

这篇关于电子邮件系统Email的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373348

相关文章

Unique Email Address

思路1:面试的时候可以自己写process method class Solution {public int numUniqueEmails(String[] emails) {if(emails == null || emails.length == 0) {return 0;}HashSet<String> set = new HashSet<String>();for(String

js发送邮件确定email地址

<a href="mailto:wjl@tom.com?subject=aaa&body=11111">test</a>

【Java】Spring Boot使用 Email 传邮件 (上手图解)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 认识依赖4.2 发送邮件步骤4.2.1 先获取授权码4.2.1 邮件配置4.2.2 主体内容4.2.3 运行结果 五、总结:5.1 注意事项5.2 剩余调用代码参考

Editable Email Notification 插件Pre-send Script获取构建的常用的属性和方法

Pre-send Script Editable Email Notification 插件的 build 对象中 result 属性是一个常见的属性,但具体的属性会根据不同的插件和实现而有所不同。以下是一些可能的属性列表,以帮助你了解 build 对象的完整属性: 常见属性 result: status: 构建的状态(如成功、失败、取消等)。number: 构建的编号。url: 构建的 UR

mysql 插入数据字段email没有选默认值,测试时出现问题

mysql中email字段类型设置  属性unique 如下: 但是mysql语句insert into zv_users(username, password, integral, progress, pv, logintime)values('caoxuejiell

logback日志Email报警,日志分级

之前的csdn找不回来了,决定重新注册一个。望支持~~~ 使用场景:预警的一种,能详细定位到代码的异常。发送邮件给指定开发人员,多开发人员,分隔邮件地址~~ <?xml version="1.0" encoding="UTF-8"?><configuration debug="false"><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <proper

JavaMail| Apache Commons Email介绍

Apache Commons Email简介 Apache Commons Email旨在提供一个用于发送电子邮件的API。它建立在JavaMail API之上,旨在简化它。 官网: http://commons.apache.org/proper/commons-email/ 版本选择: Apache Commons Email 1.5 (最新版) 下载地址: C

IOS自带Email的两种方法

IOS系统框架提供的两种发送Email的方法:openURL 和 MFMailComposeViewController。借助这两个方法,我们可以轻松的在应用里加入如用户反馈这类需要发送邮件的功能。   1.openURL 使用openURL调用系统邮箱客户端是我们在IOS3.0以下实现发邮件功能的主要手段。我们可以通过设置url里的相关参数来指定邮件的内容,不过其缺点很明显,这样的

Git 查看并修改 name 和 email

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 显示name的方法: git config user.namegit config --list 或者查看~/.gitconfig 文件。 改名字: # --global 表示全局修改git config --global user.name "这里写用户名"# 或者直接修改配置文件

No module named 'email.mime'; 'email' is not a package

https://www.aliyun.com/zixun/wenji/1641224.html   一开始将文件名命名为email.py,运行的时候报错ModuleNotFoundError: No module named 'email.mime'; 'email' is not a package,将文件名改成emailUtil.py(或其他)就可以了。主要是因为和Python内置的ema