CentOS下通过postfix使用自己的gmail邮箱发送邮件

起因:

[[email protected] ~]# echo 123|mail -s "123" [email protected]

[[email protected] ~]# smtp-server: 530 5.7.0 Must issue a STARTTLS command first. 71sm664699pfs.63 - gsmtp

"/root/dead.letter" 11/317

. . . message not sent.

之前一直使用的qq邮箱给自己发送邮件,做数据备份用,今天想把qq邮箱换成gmail邮箱,结果出现了上面的错误,网上查找了下资料终于得以解决,但中途坑比较多,总结一下方便日后遇坑。

为方便查看,用红色表示输入的命令,蓝色表示输入的内容

1、在/etc/postfix/main.cf文件末尾添加如下字段。

vi /etc/postfix/main.cf

smtp_sasl_security_options = noanonymous

relayhost = [smtp.gmail.com]:587

smtp_use_tls = yes

smtp_tls_CAfile = /etc/postfix/cacert.pem

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd

2、配置SASL认证

创建passwd文件并添加账号密码信息

mkdir -p /etc/postfix/sasl

vi /etc/postfix/sasl/passwd

[smtp.gmail.com]:587 你的邮箱:应用专用密码

注意邮箱账号和密码之间的“:",不要漏掉。例如:我公司购买的google邮箱服务,我生成的密码是123qwe则配置[smtp.gmail.com]:587 [email protected]:123qwe

由于google的安全限制,使用非web方式使用需要设置【应用专用密码】

应用专用密码生成网站:https://security.google.com/settings/security/apppasswords

3、更改文件权限

chmod 600 /etc/postfix/sasl/passwd

4、创建查找表

postmap /etc/postfix/sasl/passwd

5、生成CA证书

cd /etc/pki/tls/certs

make 你的名字.pem               #例如:我叫小明,则 make xiaoming.pem

umask 77 ; \

PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \

PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \

/usr/bin/openssl req -utf8 -newkey rsa:2048 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \

cat $PEM1 >  xiaoming.pem ; \

echo ""    >> xiaoming.pem ; \

cat $PEM2 >> xiaoming.pem ; \

rm -f $PEM1 $PEM2

Generating a 2048 bit RSA private key

....................................+++

....................................................................+++

writing new private key to ‘/tmp/openssl.gHSN9F‘

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ‘.‘, the field will be left blank.

-----

Country Name (2 letter code) [XX]:cn

State or Province Name (full name) []:beijing

Locality Name (eg, city) [Default City]:beijing

Organization Name (eg, company) [Default Company Ltd]:gongsi

Organizational Unit Name (eg, section) []:it

Common Name (eg, your name or your server‘s hostname) []:xiaoming

Email Address []:[email protected]

cp /etc/pki/tls/certs/zhaoxinxing.pem /etc/postfix/cacert.pem

7、重启postfix服务

/etc/init.d/postfix restart

8、测试、完成

把/etc/hosts文件作为附件发送到自己的gmail邮箱。

echo “mail test”|mail -a /etc/hosts -s "hosts" [email protected]

时间: 2024-12-29 07:33:05

CentOS下通过postfix使用自己的gmail邮箱发送邮件的相关文章

CentOS下使用Postfix + Dovecot + Dnsmasq搭建极简局域网邮件系统

背景 开发环境为局域网,工作内容需要经常查看邮件文件(*.eml),可恶的Foxmail必须验证账户才能进入主界面,才能打开eml文件查看. 无奈搭一个局域网内的邮件系统吧.极简搭建,仅用于通过Foxmail验证. 环境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 安装 下载服务器软件: SMTP服务器postfix POP/IMAP服务器dovecot DNS服务器dns

关于Centos下Clamv反病毒软件包更新问题

最近一直在研究学习Centos下搭建Postfix实现邮件网关的内容,以便后期邮件平台网关的灾备做一些准备,今天安装Postfix到了对Clamv反病毒软件包更新的安装配置部分,遇到了个小的插曲. 具体遇到问题看着不是什么大问题,就是Clamv之前安装的版本是0.98.4,安装完成时,更新反病毒库还是正常的,可是过了一会儿,发现再执行freshclam升级病毒库时,发现报下图所示的这个错误. 当时想想,也没什么,那就更新一下版本吧,先执行Yum update 发现查不到最新版本,后来想到yum

C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)

下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; 程序代码: MailMessage myMail = new MailMessage(); //创建邮件实例对象 myMail.From = new MailAddress(""); //发送者,要和邮件服务器的验证信息对应,不能随便更改 myMail.To.Add(new MailAd

centos下Extmail的搭建

1 Extmail概述 ExtMail Solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了Postfix.Amavisd-new.ClamAV.ExtMail.ExtMan.Courier系列软件.是一个功能相对比较齐全的免费电子邮件系统. 而其中Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMail.Extman两个部分的程序套件.ExtMail套件用于提供从浏览器中登录.使用邮件系统的Web操作界

Linux centos下让alias自定义永久生效(+常用的别名)

alias可以简化一些复杂的命令串,使一个单词或简化后的命令即可实现复杂(通常是带很多参数的长串)命令. 基本用法: alias 简化命令='实际的长串命令'    //实际长串命令通常为'原命令 -/选项参数' eg. alias ll='ls -a' 获取别名: alias        //即可查看当前设定的所有alias别名 取消别名: unalias 简化命令 eg. unalias ll            //取消ll的别名 永久生效: 直接使用alias命令定义的别名,重启后就

Centos下安装memcached+memcached教程

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据.简单的说就是将

CentOS下安装Filezilla软件

CentOS下安装Filezilla软件 说到Centos大家都是非常熟悉了,当然Filezilla也是日常中应用的软件,但是在linux下安装怎么操作呢.安装Filezilla有多个方式,但用户应该最喜欢用的就是下载安装包,然后执行安装.安装Filezilla前需要,下载安装包,然后需要安装编译器,以上工作准备好后,还需要解压,所以比较零碎,所以我就没选择通过安装包进行过安装,在此我通过rpm进行安装,首选是下载所需文件,然后进行yum安装.具体见习: 首选是安装Rpm,在centos下执行以

Centos下安装mailx

[[email protected] /]# mail -s "Message"  [email protected] < /tmp/info.message 系统默认以"[email protected]主机名" 发送邮件,收到邮件直接被过虑成垃圾邮件了,那可不可以自定义邮箱发送邮件呢? 答案肯定可以的. 下载mailx包 mailx官方站点 http://heirloom.sourceforge.net/ 下载最新版本mailx-12.4.tar.bz2

关于CentOS下 yum包下载下的rpm包放置路径

http://blog.sina.com.cn/s/blog_4e928c170100xxdj.html 在CentOS下用yum安装,回发现在/var/cache/yum/下的base.extrs和updates下的packages下都没有发现下载的RPM 原来在/etc/yum.conf下没有设置下载选项 keepcache=0为下载后清除 keepcache=1为下载后保存