email

################email#######
基本电子邮件发送

电子邮件发送
1 .服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过/usr/bin/sendmail程序进行提交。如果该MTA是最终目标位置,邮件将传递至MDA。否则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。
2 .MDA:“邮件发送代理”。MDA将邮件发送至收件人的本地邮件存储位置(默认情况下是/var/spool/mail/user)。Postfix提供自己的MDA,以发送至基于文件的本地默认邮件存储位置/usr/libexec/postfix/local.
3 .转发:电子邮件服务器(MTA)将提交的邮件转发至另一个服务器,以进行发送
4 .排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认情况下,Postfix每小时执行此操作一次)
5 .拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝
6 .退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户
7 .电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户准备:

########################准备:#####
一: desktop虚拟机(westos-mail.westos.com)
#######配置网络。yum源。修改主机名称

88  cd /etc/sysconfig/network-scripts/
   89 ls
   90 vim ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.144
NETMASK=255.255.255.0
  104  hostnamectl set-hostnamewestos-mail.westos.com
  105 logout
  107 vim /etc/yum.repos.d/rhel_dvd.repo
  108 yum clean all

#####配置DNS
  109 yum install bind -y
  111 systemctl start named
  114 vim /etc/named.conf

115 vim /etc/named.rfc1912.zones

116 cd /var/named
  117 ls
  118 cp -p  named.localhostwestos.com.zone
  119 vim westos.com.zone

120 cp -p  westos.com.zoneqq.com.zone
  121 vim qq.com.zone

122 systemctl restart named
  131 systemctl stop firewalld
####测试:
  123 vim /etc/resolv.conf

124 cd
  126 dig dns.westos.com
  136 dig  -t mx westos.com

二:server虚拟机(qq-mail.qq.com)
######配置网络。yum源。修改主机名称
     1 cd/etc/sysconfig/network-scripts/
     2 ls
     3 vim ifcfg-eth0
     4 vim /etc/yum.repos.d/rhel_dvd.repo
     5  yumclean all
     6 hostnamectl set-hostname qq-mail.qq.com
     7 logout
#######测试:
   20 vim /etc/resolv.conf
   21 dig dns.qq.com
   22 dig -t mx qq.com

#######################
#### postfix ##########
1.
postfix提供smtp协议用来投递邮件
默认端口25
/var/log/maillog    ##服务日志
mail [email protected]
Subject: hello
hello world
.       #用"."来结束录入内容并发送
mailq       ##查看邮件队列
postqueue -f    ##重新处理邮件队列

默认情况下邮件端口只在127.0.0.1上开启

2.配置 两个虚拟机都配置
可以在/etc/postfix/main.cf文件中找到以下所有指令。
(1)myorigin
重写本地发布的电子邮件,使其显示为来自该域。这样有助于确保响应返回入站邮件服务器默认:myorigin = $myhostname
(2)inet_interfaces
控制Postfix侦听传入电子邮件的网络接口。如果设置为loopback-only,仅侦听127.0.0.1和::1,
如果设置为all,则侦听所有网络接口。还可以指定特定地址。
默认:inet_interfaces = localhost
(3)mydestination
收到地址为这些域的电子邮件将传递至MDA,以进行本地发送。
默认:mydestination = $myhostname, localhost.$mydomain,localhost
(4)mynetworks
IP地址和网络的逗号分隔列表(采用CIDR表示法)。这些地址和网络可以通过此MTA转发至
任何位置,无需进一步身份验证。
默认:mynetworks = 127.0.0.0/8
(5)relayhost
relayhost转发所有通过的出站邮件。通常用方括号指定,以阻止MX记录查找。
默认:relayhost =local_transport
收件地址为$mydestination的邮件的发送方式。默认情况下,设置为local:$myhostname(使用Local MDA将传入电子邮件发送到/var/spool/mail中的本地邮件存储位置)
默认:local_transport = local:$myhostname
(6)postconf -d 显示默认值。
(7)postconf -n显示不同于默认值的更改。

####westos.com:

vim /etc/postfix/main.cf
116 inet_interfaces = all       ##25端口开启的网络接口
76 myhostname = westos-mail.westos.com  ##指定mta主机名称
83 mydomain = westos.com        ##指定mta的域名
99 myorigin = westos.com/$mydomain  ##指定邮件来源结尾(@后面的字符内容)
164 mydestination = $myhostname, $mydomain, localhost   ##接收邮件结尾字符的指定
systemctl restart postfix.service
systemctl stop firewalld

28 vim /etc/postfix/main.cf

29 systemctl restart postfix.service
   30 systemctl stop firewalld

####qq.com:

vim /etc/postfix/main.cf
116 inet_interfaces = all       ##25端口开启的网络接口
76 myhostname = qq-mail.qq.com  ##指定mta主机名称
83 mydomain = qq.com        ##指定mta的域名
99 myorigin = qq.com/$mydomain  ##指定邮件来源结尾(@后面的字符内容)
164 mydestination = $myhostname, $mydomain, localhost   ##接收邮件结尾字符的指定
systemctl restart postfix.service
systemctl stop firewalld

8 vim /etc/postfix/main.cf

9   systemctl restartpostfix.service
   10 systemctl stop firewalld

测试: 可以互相发邮件

31 mail [email protected]
        32 mailq
        33 mail

11 mail
   12 mail [email protected]
   13 mailq

3.邮件别名
[[email protected] ~]# vim /etc/aliases
别名:  真名            ##邮件别名
别名:  :include:filename   ##邮件群发
vim filename
user1
user2
postalias /etc/aliases
mail 别名

39  vim /etc/aliases   ####配置文件

40 vim /etc/postfix/qun

41 postalias /etc/aliases   ###加密
   42 systemctl restart postfix.service
   43  mail [email protected]   #####邮件群发
   44 mailq
   45 mail               
   46 mail -u student
   47  mail [email protected]  #####root别名admin
   48 mailq
   49 mail
   50  mail [email protected]  ####student别名admiin
   51 mailq
   52 mail -u student

4.通过远程主机测试邮件服务
真机:

[[email protected] ~]# yum install telnet.x86_64 -y
[[email protected] ~]# telnet 172.25.254.144 25
Trying 172.25.254.144...
Connected to 172.25.254.144.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
ehlo hello ####确定软件是否装好
250-westos-mail.westos.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:[email protected]  #####发送方
250 2.1.0 Ok
rcpt to:[email protected]  #####接收方
250 2.1.5 Ok
data                     ####编辑邮件内容
354 End data with <CR><LF>.<CR><LF>
fhylkhhiplu.kj
.
250 2.0.0 Ok: queued as 4CF3617E86E
quit                     #####退出
221 2.0.0 Bye
Connection closed by foreign host.
[[email protected] yum.repos.d]#
检测:
(1)westos.com  发送方

[[email protected] ~]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
52431246202      194 Tue May 2301:48:23  [email protected]
              (connect to172.25.254.244[172.25.254.244]:25: No route to host)
                                        [email protected]

-- 0 Kbytes in 1 Request.
[[email protected] ~]# postqueue -f    ##重新处理邮件队列
[[email protected] ~]# mailq
Mail queue is empty
[[email protected] ~]#

(2)qq.com 接收方

[[email protected] ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type? for help.
"/var/spool/mail/root": 3 messages 2 new 3 unread
 U 1 root                  Tue May 2300:05  22/734   "qqqq"
>N  2 [email protected]       Tue May 23 01:52  14/494  
 N 3 [email protected]       Tue May 2301:53  15/497  
& quit
Held 3 messages in /var/spool/mail/root
You have mail in /var/spool/mail/root
[[email protected] ~]#

5.邮件客户端的访问控制

#########限制客户端
在westos.com:

postconf -e "smtpd_client_restrictions = check_client_accesshash:/etc/postfix/access" ###生成/etc/postfix/main.cf文件中的内容

vim /etc/postfix/main.cf

vim /etc/postfix/access
172.25.254.44   REJECT

postmap /etc/postfix/access  ####加密/etc/postfix/access

systemctl restart postfix     ####重启postfix

测试:真机
[[email protected] ~]# telnet 172.25.254.144 25
Trying 172.25.254.144...
Connected to 172.25.254.144.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
mail from:[email protected]   #####发送方
250 2.1.0 Ok
rcpt to:[email protected]    ####接受方
554 5.7.1 <unknown[172.25.254.44]>: Client host rejected: Accessdenied

#####限制用户发送

[[email protected] ~]#  postconf -e"smtpd_sender_restrictions = check_sender_accesshash:/etc/postfix/sender"
[[email protected] ~]# vim /etc/postfix/main.cf

[[email protected] ~]# vim /etc/postfix/sender
  [email protected]   REJECT

[[email protected] ~]# cd /etc/postfix
[[email protected] postfix]# ls
access     canonical  header_checks master.cf  relocated  sender.db virtual
access.db  generic    main.cf        qun        sender     transport
[[email protected] postfix]# systemctl start named
[[email protected] postfix]# systemctl restart postfix

测试:
[[email protected] ~]# telnet 172.25.254.144 25
Trying 172.25.254.144...
Connected to 172.25.254.144.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
554 5.7.1 <[email protected]>: Sender address rejected: Accessdenied

############限制用户接收

[[email protected] ~]# postconf -e "smtpd_recipient_restrictions =check_sender_access hash:/etc/postfix/recip"
[[email protected] ~]# vim /etc/postfix/main.cf

[[email protected] ~]# vim /etc/postfix/recip
   [email protected]   REJECT

[[email protected] ~]# postmap /etc/postfix/recip
[[email protected] ~]# systemctl restart postfix
[[email protected] ~]# useradd westos
[[email protected] ~]#


测试:
[[email protected] ~]# telnet 172.25.254.144 25
Trying 172.25.254.144...
Connected to 172.25.254.144.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]     
554 5.7.1 <[email protected]>: Sender address rejected: Accessdenied
quit
221 2.0.0 Bye
Connection closed by foreign host.

#########企业邮箱
####出栈地址转换
    1 postconf -d | grep generic
    2 postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"
    3 vim  /etc/postfix/main.cf

4 vim /etc/postfix/generic
[email protected]   [email protected]
真域名                   假域名

5 postmap /etc/postfix/generic
    6 systemctl restart postfix
    7 su - westos

测试:[[email protected] ~]$ history
     1 mail [email protected]
     2 mailq
[[email protected] ~]# mail

##入战地址转换
1. dns mx 记录解析先做好
   17 vim /etc/named.rfc1912.zones

18  cp-p qq.com.zone sb.com.zone
   19 vim sb.com.zone

20 systemctl restart named
   21 dig -t mx sb.com

2.

26  postconf -e"virtual_alias_maps = hash:/etc/postfix/virtual"
   27 vim /etc/postfix/main.cf

28  vim /etc/postfix/virtual
虚拟名字        真实用户
[email protected]        [email protected]

29 postmap /etc/postfix/virtual
   30 systemctl restart postfix
   31 su - westos
测试:
[[email protected] ~]# mail [email protected]

[[email protected] ~]$ mail

##########################

####### dovecot ##########
##########################
1.
dovecot 用来提供收件协议
pop3        110
imap        143
imaps       993
pop3s       995

给定用户名称,用户密码,dovecot程序代我们去看这个用户的邮件文件

###############收邮件######
2.
yum install dovecot -y
systemctl start dovecot
netstat -antlpe | grep dovecot

3.
vim /etc/dovecot/dovecot.conf
24 protocols = imap pop3 lmtp
48 login_trusted_networks = 0.0.0.0/0
49 disable_plaintext_auth = no

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

30 mail_location = mbox:~/mail:INBOX=/var/mail/%u ##防止别人收到你的邮件
passwd westos   ####

mail westos

4.

[[email protected] ~]# su - westos
[[email protected] ~]$ mkdir mail/.imap/ -p
[[email protected] ~]$ touch mail/.imap/INBOX
[[email protected] ~]$ logout

5.自动撰写 mail/.imap
mkdir /etc/skel/mail/.imap/ -p
touch /etc/skel/mail/.imap/INBOX
/etc/skel  #####骨架目录

14  mkdir /etc/skel/mail/.imap/ -p
   15 touch /etc/skel/mail/.imap/INBOX
   16 useradd lee
   17 cd /home/lee
   18 ll
   19 ls mail/ -a
   20 ls mail/.imap/INBOX
   21 passwd lee
   22  mail lee


测试

真机:
[[email protected] ~]# yum install mutt -y
[[email protected] ~]#  mutt -fpop://[email protected]
2 kept, 0 deleted.

[[email protected] ~]#  mutt -fpop://[email protected]
1 kept, 0 deleted.

选择O

输入密码

按Enter

######雷鸟######
1 下载 thunderbird-31.2.0-1.el7.x86_64.rpm
2 安装
yum install /home/kiosk/Desktop/thunderbird-31.2.0-1.el7.x86_64.rpm -y
3 (1)打开雷鸟

(2)

4验证:
[[email protected] ~]# mail

##########mariadb;dovecot;postfix########

准备工作:
(1)#####postfix###
westos.com:
  201 mv  /etc/postfix/main.cf  /mnt/
  202 yum reinstall postfix -y

203 vim /etc/postfix/main.cf
116 inet_interfaces = all       ##25端口开启的网络接口
76 myhostname = qq-mail.qq.com  ##指定mta主机名称
83 mydomain = qq.com        ##指定mta的域名
99 myorigin = qq.com/$mydomain  ##指定邮件来源结尾(@后面的字符内容)
164 mydestination = $myhostname, $mydomain, localhost   ##接收邮件结尾字符的指定
  204 systemctl restart postfix

(2)######mariadb####
  205 yum install http php php-mysql mariadb-server -y
  206 systemctl start mariadb
  208 vim /etc/my.cnf          ###mysqul的配置文件
         14  skip-networking=1

209 systemctl restart mariadb  ###重启mariadb服务

210 mysql_secure_installation  ###mysql安全内容配置
       所有都按Enter键

下载
  215 [email protected]:/home/kiosk/Desktop/phpMyAdmin-3.4.0-all-languages.tar.bz2  /var/www/html
   ###########下载 压缩包
  216 cd /var/www/html
  217 ls
  218 tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
  ####解压压缩包到/var/www/html
  219 ls
  220 rm -fr *.bz2
  221 ls

222 mv phpMyAdmin-3.4.0-all-languages/ mysqladmain #### 将安装包下的所有文件移动到 mysqladmin
  223 cd mysqladmain/
  224 ls

225 cp config.sample.inc.php config.inc.php  ###复制配置文件
  226 vim config.inc.php   ###写配置文件
$cfg[‘blowfish_secret‘] = ‘mysql‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!*/

227 systemctl restart httpd

真机:
打开浏览器访问:http://172.25.254.144/myadmin/

westos.com:

228 mysql -uroot -pqwer
    MariaDB [(none)]> create [email protected] identified by ‘postuser‘;  ####建立postuser用户 ,本地登陆
    MariaDB [(none)]> grantselect,update,insert on email.* to [email protected]; ####### 本机登陆postuser,授权
    MariaDB [(none)]> select * fromemail.emailuser;###查询email.emailuser表中的所有内容
    MariaDB [(none)]> quit

测试:
    32 cd /etc/postfix
    34 vim mailuser.cf  ####用户名称查询
hosts = localhost  #####数据库所在的主机
user = postuser    #####登陆数据库的用户
password = postuser #####登陆数据库的密码
dbname = email    #####postfix要查询的名字
table = emailuser ######postfix要查询的表的名字
select_field = username  #####postfix要查询的字段
where_field = username  ####用户给定postfix的查询条件

35 postmap -q "[email protected]" mysql:/etc/postfix/mailuser.cf
   36 cp mailuser.cf maildomain.cf
   37 vim maildomain.cf  #### 用户域名查询
hosts = localhost
user = postuser
password = postuser
dbname = email
table = emailuser
select_field = domain
where_field = domain

38 postmap -q "lee.com" mysql:/etc/postfix/maildomain.cf
   39 cp mailuser.cf mailbox.cf
   40 vim mailbox.cf  ####用户邮箱位置查询
hosts = localhost
user = postuser
password = postuser
dbname = email
table = emailuser
select_field = maildir
where_field = username
   41 postmap -q "[email protected]" mysql:/etc/postfix/mailbox.cf

42 ls

43 cat mailuser.cf
   44 cat maildomain.cf
   45 cat mailbox.cf
   46 history

二##配置postfix

[[email protected] ~]# groupadd -g 666 vmail
[[email protected] ~]# useradd -s /sbin/nologin -u 666 vmail -g 666
[[email protected] ~]# id vmail
uid=666(vmail) gid=666(vmail) groups=666(vmail)

[[email protected] ~]# postconf -e "virtual_mailbox_base =/home/vmail"
##设定虚拟用户的邮件目录
[[email protected] ~]#  postconf -e"virtual_uid_maps = static:666"
##虚拟用户建立文件的uid
[[email protected] ~]# postconf -e "virtual_gid_maps =static:666"
##虚拟用户建立文件的gid
[[email protected] ~]# postconf -e "virtual_alias_maps =mysql:/etc/postfix/mailuser.cf"
[[email protected] ~]# postconf -e "virtual_mailbox_domains =mysql:/etc/postfix/maildomain.cf"
[[email protected] ~]# postconf -e "virtual_mailbox_maps =mysql:/etc/postfix/mailbox.cf"
[[email protected] ~]#  vim/etc/postfix/main.cf

[[email protected] ~]#  systemctl restartpostfix
[[email protected] ~]#  ll/etc/postfix/mailbox.cf
-rw-r--r--. 1 root root 134 May 23 09:05 /etc/postfix/mailbox.cf
[[email protected] ~]# ll /etc/postfix/mailuser.cf
-rw-r--r--. 1 root root 135 May 23 09:03 /etc/postfix/mailuser.cf
[[email protected] ~]# ll /etc/postfix/maildomain.cf
-rw-r--r--. 1 root root 131 May 23 09:04 /etc/postfix/maildomain.cf

修改邮箱位置

测试:
[[email protected] ~]# cd /home/vmail
[[email protected] vmail]# ls
[[email protected] vmail]# mail [email protected]
Subject: abcd
abcd
.
EOT
[[email protected] vmail]# ls
lee.com
[[email protected] vmail]# cd lee.com
[[email protected] lee.com]# ls
lee
[[email protected] lee.com]# cd lee
[[email protected] lee]# ls
cur  new tmp
[[email protected] lee]# catnew/1495545556.Vfd01I1a9eecdM433309.westos-mail.westos.com

时间: 2025-01-13 11:18:29

email的相关文章

利用email.net设置网络代理发邮件

近期在做一个项目,客户的内部网络须要设置代理才干收发邮件,本来一个简单的东西突然变得复杂了,在baidu搜索了非常久都没找到适合的组件.baidu就像个废物一样,没办法仅仅能去yahoo搜,结果在微软的组件站点上找到了email.net,地址是:http://visualstudiogallery.msdn.microsoft.com/28b96cd4-b755-48a0-b686-9abb7d5607a8. 这个站点还能够找到非常多不错的关于.net的组件.C#开发人员能够多上上. 通过代理发

CodeForce 589A Email Aliases

Email Aliases Polycarp has quite recently learned about email aliases. Of course, he used to suspect that the case of the letters doesn't matter in email addresses. He also learned that a popular mail server in Berland bmail.com ignores dots (charact

iPhone 和Android应用,特殊的链接:打电话,短信,email

下面的这篇文章主要是说,网页中的链接如何写,可以激活电话的功能. 例如,页面中展示的是一个电话号码,当用户在手机浏览器里面点击这个电话号码的时候,手机会弹出拨号的面板,或者是短信程序会启动等. 1. 打电话 在android的浏览器中,如果电话号码是 XXX-XXX-XXXX的型式的话,用户点击的时候,拨号面板会激活,但是如果不是这一特定的格式,那么拨号功能是不会启动的.其实可以通过链接的方式激活拨号面板. (1) IPhone的写法 [phone_number] 就是电话号码了 <a href

TortoiseGit配合msysGit在[email&#160;protected]代码托管的傻瓜教程

命令行太麻烦,肿么破?便便利用睡觉的时间解决了一点效率问题,tortoiseGit处理GitHub,一样可以处理 Git @osc ,虽然说可以用gitk来调出图形界面,but,我就是不想看见黑黑的命令提示符的框框,于是乎,近乎龟毛到变态的便便又开始了新的折腾.... OK,windows系统,linux和mac勿喷..... 下载msysgit http://msysgit.github.io/ 下载TortoiseGit http://code.google.com/p/tortoisegi

GTD&amp;Email引领现在生活

引言: 先前做过一份调查问卷关于创业能力测评,上面有问到这样的问题: 是否曾经为了某个理想而设下两年以上的长期计划,并且按计划进行直到完成? 是否在没有父母及师长的督促下,就可以自动的完成分派的工作? 是否喜欢独立完成自己的工作,并且做得很好? 是否有习惯保存重要资料,并且井井有条整理,一杯需要时可以随时提取查阅? 当你要完成一项重要工作时,总是给自己足够的时间认真完成,而绝不会让时间虚度,在匆忙中草率完成? 这份调查问卷共有24道题,是为1分,否为0分,21分到24分的评价是: 有无限的潜能,

$*和[email&#160;protected]之间区别代码分析

#!/bin/bash set 'apple pie' pears peaches for i in $*           /*单引号被去掉,循环单个字符输出*/ do echo $i done [[email protected] Ex_14.02-14.31]# sh 14-14-1 apple pie pears peaches -------------------------------------------------------------- #!/bin/bash set

[email&#160;protected]一个高效的配置管理工具--Ansible configure management--翻译(六)

无书面许可请勿转载 高级playbook Finding files with variables All modules can take variables as part of their arguments by dereferencing them with {{ and }} . You can use this to load a particular file based on a variable. For example, you might want to select a

【转载】 ERROR 1045 (28000): Access denied for user [email&#160;protected] (using password: NO)

来自:http://www.jb51.net/LINUXjishu/10981.html 错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误.删除user.user中值为NULL的,或更新NULL为test 1)delete from user where user is NULL 2)update user set user='test' where user is NULL.意外的情况: 如果上述方

签名格式 - 职场 Email 礼仪

作为一名研发人员,算的上是一名职业人士,必定拥有使用公司域名的邮箱.现如今,可能已经找不到没有电子邮箱的网民了.职业人士利用公司邮箱发送 邮件与私人信件有着很大区别,这是一个职场邮件礼仪的问题.也是在网上参考了一些资料,整理了下,记录下这些细节,也算是在职场细节方面的一个小总结. "在商务交往中要尊重一个人,首先就要懂得替他节省时间",电子邮件礼仪的一个重要方面就是节省他人时间,只把有价值的信息提供给需要的人. 写Email就能看出其人为人处世的态度.你作为发信人写每封Email的时候

[[email&#160;protected]] Omit catch error block if not needed

From [email protected], you can omit catch error block. Before: try { throw new Error('whatever'); } catch(err) { console.log(err) } Now: try { throw new Error('whatever'); } catch { console.log("error happened") } It is just a syntax sugar, if