这是本文档旧的修订版!


A PCRE internal error occured. This might be caused by a faulty plugin

===== linux下如何配置postfix使用SMTP向外发送邮件 ===== ==== 安装mailx/postfix ==== <code>1. Ubuntu下打开shell命令终端依次输入如下命令: sudo apt-get install heirloom-mailx sudo apt-get install postfix 2. CentOS下打开shell命令终端依次输入如下命令: yum install mailx.x86_64 yum install postfix.x86_64 </code> ==== 以GMAIL为例创建本地SSL认证证书和密钥数据 ==== 打开Linux shell命令终端,依次输入并执行如下命令: <code>mkdir .certs certutil -N -d .certs echo -n | openssl s_client -connect smtp.gmail.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /$PATH$/.certs/gmail.crt certutil -A -n "Google Internet Authority" -t "C,," -d /$PATH$/.certs -i set /$PATH$/.certs/gmail.crt (以上$PATH$替换为实际路径)</code> <note tip>certutil可能系统会返回找不到命令错误,可根据提示命令安装。</note> ==== 修改mailx的配置文件 ==== Ubuntu下修改 /etc/nail.rc,CentOS下修改 /etc/mail.rc,文件结尾回车后增加如下内容: <code>set smtp-use-starttls(使用TLS/STARTTLS 端口:587时增加该条件) set ssl-verify=ignore set nss-config-dir=/$PATH$/.certs ($PATH$替换为实际路径) set from=用户名@astercc.com set smtp=smtps://smtp.gmail.com:465(gmail 使用TLS/STARTTLS 端口587可改为,set smtp=smtp://smtp.gmail.com:587) set smtp-auth-user=用户名@astercc.com set smtp-auth-password=密码 set smtp-auth=login</code> 如果需要多个邮箱的账号并存在配置文件中,在发送时提供选择还有另外一种写法如下: <code>account gmail { set smtp-use-starttls(使用TLS/STARTTLS 端口:587时增加该条件) set ssl-verify=ignore set nss-config-dir=/$PATH$/.certs ($PATH$为路径) set from=用户名@astercc.com set smtp=smtps://smtp.gmail.com:465(gmail 使用TLS/STARTTLS 端口587可改为,set smtp=smtps://smtp.gmail.com:587) set smtp-auth-user=用户名@astercc.com set smtp-auth-password=密码 set smtp-auth=login }</code> 这种写法需要在mail/mailx命令后增加-A参数引用 ==== 配置文件增加的参数说明 ==== ^ **参数** ^ **说明** ^ |set smtp-use-starttls |gmail使用TLS/STARTTLS| |ssl-verify |使用ssl| |nss-config-dir |本地ssl认证证书和密钥数据路径| |from |发送的邮件地址| |smtp |发生的外部smtp服务器的地址| |smtp-auth-user |外部smtp服务器认证的用户名| |smtp-auth-password |外部smtp服务器认证的用户密码| |smtp-auth |邮件认证的方式| 确定配置参数,后保存文件后,就可以使用mail/mailx命令发送邮件了。 ==== 发送测试邮件 ==== 命令行使用如下命令发送邮件 <code>mail/mailx (-vcabSA) -s "Test mail" address</code> 回车后命令行输入邮件内容,内容输入完毕回车后ctrl+d发出邮件内容,多个收件人之间用逗号分隔,你也可以通过管道(|)和重定向符(<)获取要发送邮件内容。 <code>-s 指定邮件主题。 -v 列出讯息,例如送信的地点、状态等等。 -c 抄送邮件副本的用户列表。 -a 文件指定的文件附加到邮件。 -b 发送密件副本列出,多个名单应该是一个逗号分隔的名称列表。 -S 设置内部选项的变量(如上面配置文件增加的内容可由 -S set smtp-auth-user=用户名@astercc.com指定)。 -A 多个SMTP账号时引用账号名(即配置文件里account后的名字 )。</code> <note important>Resolving host smtp.gmail.com . . . done. Connecting to 173.194.72.108:587 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 11/300 . . . message not sent. 这类错误可以理解成是没有证书或创建的证书未生效。</note> <note important>SMTP发送邮件遇到535错误多为账户或密码错误。有的邮箱需要将密码改为SMTP授权码(163邮箱遇到此类问题)。</note> <note>SMTP错误码详解参考链接 [[http://www.aiuxian.com/article/p-2648073.html]]</note>

zh/用途和案例/linux下如何配置postfix使用smtp向外发送邮件.1475055640.txt.gz · 最后更改: 2017/12/12 03:11 (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki