默认情况下,WordPress使用不可靠的PHP邮件功能,并且所发出的电子邮件经常会被邮件服务商标记为垃圾邮件。使用SMTP服务器是确保WordPress电子邮件可传递性的最佳方法。
在本教程中,我们将详细介绍如何使用免费的SMTP服务器发送WordPress电子邮件。
为什么使用SMTP服务器发送WordPress电子邮件?
WordPress站长经常遭遇无法发送电子邮件问题,解决此问题的最简单方法是使用SMTP服务器。
默认情况下,WordPress通过PHP mail发送电子邮件。不幸的是,并非所有WordPress所托管的服务器正确配置PHP mail,再说大部分国内的服务器提供商已经禁用了服务器邮局功能。
此外,即使使用PHP mail成功发送了电子邮件,也可能会被邮件接收服服务器错误地识别为垃圾邮件。
确保WordPress电子邮件可传递性的最佳方法是使用SMTP服务器。这是在Internet上发送电子邮件的标准协议。
SMTP服务器使用正确的身份验证来确保电子邮件是由授权发件人发送的。这样可以提高可传递性,并且电子邮件可以安全地进入用户的收件箱。
要在WordPress网站上使用SMTP服务器,需要借助第三方插件来实现。当然部分WordPress主题也附带了SMTP邮局功能,比如教学博提供的WordPress付费主题。
如果需要使用插件实现,我们推荐使用WP Mail SMTP插件,它是目前WordPress的最佳SMTP插件,即使免费版本也能够满足站长的基本需求。
使用WP Mail SMTP插件配置SMTP邮局
第一步是安装并启用WP Mail SMTP插件。
启用后,进入WordPress管理后台中的 WP Mail SMTP » Settings 页面进一步设置。
您需要先输入“From Email(发件人电子邮件)”和“From Name(发件人姓名)”。WordPress电子邮件将以你设置的电子邮件地址和名称发送。
此外务必选中“Force From Name”复选框,以确保来自WordPress站点的所有电子邮件都是通过SMTP服务器以设置好的电子邮件地址发出。
提示:只需勾选“Force From Name”即可保证所有电子邮件都来自相同的名称,即可忽略其他插件(例如WPForms)的设置。
接下来,需要选择一个SMTP邮件服务,如下图所示。
注:下面的教程将会以列表中的SMTP服务器为例子进行说明,如果你要使用163邮箱或者QQ邮箱提供的SMTP服务,建议阅读163邮箱&QQ邮箱SMTP邮局设置教程。国内网站建议尽可能选择国内的SMTP服务器,而不是国外的SMTP服务器。
下面将介绍多个海外不同的免费SMTP服务。您需要保持WP Mail SMTP设置选项卡打开,然后按照所选SMTP服务的说明进行操作。
- 使用Sendinblue提供的SMTP服务器发送邮件
- 使用Gmail提供的SMTP服务器发送邮件
- 使用MailGun提供的SMTP服务器发送邮件
- 使用SendGrid提供的SMTP服务器发送邮件
使用Sendinblue提供的SMTP服务器发送邮件
Sendinblue支持每日最多发送300封免费电子邮件。
首先,需要在Sendinblue网站上创建一个帐户。验证你的电子邮件地址后,网站会要求您选择一个Sendinblue付费计划。点击“Continue with a Free plan”按钮进入下一步。
接着,你需要输入收到确认码已完成注册步骤。注册成功后,进入Sendinblue管理仪表盘。
在继续之前,你需要访问域名管理创建一个子域,例如mail1.yourdomain.com
。(在这里就不对子域名设置展开说明了)
创建子域后,将其添加到您的Sendinblue帐户中。转到“Settings”页面。在此页面上,滚动到“Your Senders and Domains”部分,然后单击其下面的“Configure”按钮。
接下来,点击“Domains”标签,然后点击“Add a New Domain”按钮。
输入前面你配置好的域名子域,例如mail1.yoursite.com
。确保选中复选框,以确认要使用域名对电子邮件进行数字签名。然后,单击“Save”按钮。
保存后,将会出现一个弹出列表,要求您进行验证域步骤。默认验证方法为上传文件,又或者使用添加DNS条目。可以根据自己的便利性选择合适的方法。(关于域名验证的步骤,小编就不再展开说明,毕竟所有域名验证的步骤都大同小异)
提示:如果误关闭了此弹出窗口,可以通过点击子域旁边的“Verify This Domain”链接来重新验证域。
完成文件上传或者添加DNS条目后,返回Sendinblue并继续往下走。
提示: DNS更改最多可能需要24到48小时才生效。如果验证失败,请在几个小时后重试。或者改用上传文件验证。
完成此操作后,您还需要再输入两个DNS TXT记录,以便Sendinblue可以对从您的域发送的电子邮件进行身份验证。这提高了可传递性。
在Sendinblue中,单击您域旁边的“Manage”下拉菜单,然后选择“Authenticate this domain”选项,进一步验证域。
您将看到一个弹出窗口,其中包含需要添加的DNS记录的详细信息。您只需要添加前3个DNS记录,如果前面做了一次DNS条目验证,则第三个无需再添加,第四个可以忽略。
每当你在域名管理添加了DNS TXT记录,点击对应的“Record Added. Please Verify It”进行验证。
完成上述步骤,返回WP Mail SMTP设置页面,然后找到API Key输入框,点击“Get v3 API Key”链接。
这将会在新标签中打开您的Sendinblue帐户的SMTP&API页面,复制API KEY即可。
再次返回WP Mail SMTP设置页面并粘贴API KEY,点击Save Settings即可。
完成上述操作后,只需要等待Sendinblue激活您的帐户即可发送测试邮件,看设置是否成功。
使用Gmail提供的SMTP服务器发送邮件
注:国内不能直接使用谷歌的API服务,需要梯子辅助!
如果你的网站主要是面对国外访客,也可以考虑使用免费的Gmail帐户发送SMTP电子邮件。如果您还没有Gmail帐户,需要创建一个帐户,然后再按照下面的说明进行操作。
首先,确保安装并启用了WP Mail SMTP插件。在 WP Mail SMTP » Settings 页面上,选择Gmail作为Mailer。
在下一个界面,您将会看到需要输入Client ID,Client Secret及URL,不要关闭此页面。
访问Google Developers Console网站,同意条款和条件后,点击“Create Project”按钮。
输入项目名称后,点击Create按钮进入下一个步骤。
在项目仪表盘,点击“Enable APIs and Services”按钮。
进入到谷歌的API库,在搜索栏中输入“Gmail”进行搜索。
在搜索结果中找到Gmail API,点击进入下一步。
接下来,您将看到有关Gmail API的一些信息,单击Enable按钮。
启用该API可能需要花费几秒钟,接下来点击“Create Credentials”按钮。
在下一个步骤,您需要完成以下选项设置:
- 您正在使用哪个API?-Gmail API
- 您将从哪里调用API?-Web browser (Javascript)
- 您将访问哪些数据?-User data
最后点击“What credentials do I need?”。
将会弹出窗口提示创建OAuth同意,点击“Set Up Consent Screen”链接即可。
OAuth同意界面将在新标签中打开。在这里,您需要选择“External”类型,然后单击“Create ”按钮。
接下来,需要填写应用名称及支持邮件地址。
向下滚动到“Authorized domains”部分,单击“Add Domain”按钮,然后输入网站域名。
注:域名无需填写
http
,https
或者www
。
接填写开发者联系邮箱,点击“Save and Continue”按钮。
在“Test users”步骤,单击“Add Users”按钮,输入您的Gmail地址。
然后,再次按“保存并继续”。继续并返回到其他选项卡以设置项目的凭据。您可以输入任何名称,也可以直接保留默认名称。
在“Authorized JavaScript origins”中,输入网站的域名。
在“Authorized redirect URIs”,您会找到需要在WP Mail SMTP的设置中输入重定向URL(这部分信息很重要,复制保存下来)。
点击下方的“Refresh”按钮,即会出现“Create OAuth client ID”按钮,点击进入最后步骤。
至此,已完成Google Web应用程序创建,单击“Done”按钮。
跟着下来,将看到列出刚刚创建Web应用程序,单击其旁边的编辑图标。
即可看到WP Mail SMTP插件设置所需要的Client ID和Client Secret(这部分信息很重要,复制保存下来)。
将“这部分信息很重要”内容复制并粘贴到WP Mail SMTP设置页面中。然后,继续并单击“Save Settings”按钮。
页面刷新后,向下滚动,然后单击“Allow plugin to send emails using your Google account”按钮。
在打开的弹出窗口,选择您的电子邮件帐户。您将看到一个警告界面,只需单击“Advanced”链接,然后单击左下角“Go to wpmailsmtp.com”链接(忽略安全提醒,因为这个APP是你自己创建的)。
Google将会弹出窗口,要求您授予权限。继续单击“Allow ”按钮。
Google会让你再次勾选确认,单击“Allow”按钮即可。
最后,将会返回到WP Mail SMTP插件界面。您将会看到一条消息,确认您已成功将网站链接到Google API项目。
完事,自己给自己发个测试邮件,看SMTP邮局是否生效。
使用MailGun提供的SMTP服务器发送邮件
MailGun是另一个广受欢迎的SMTP电子邮件服务提供商,支持3个月内免费发送电子邮件5,000封/月。
首先,访问MailGun网站点击“Start Sending”按钮以注册一个帐户。
MailGun要求填入信用卡详细信息(这一点不太友好,不过老外经常喜欢这么干)。如果超出免费的范围,则将按0.80美元/每1,000封电子邮件收费。
完成后,点击页面底部的“Create Account”按钮。
然后您将会进入帐户仪表盘。
在继续设置下面的步骤之前,务必登入你的注册邮箱找到来自Mailgun的验证电子邮件,点击电子邮件中的链接激活您的Mailgun帐户。
提示:您还将收到一封电子邮件,通知您API密钥已添加到Mailgun帐户中。
点击验证链接后,将提示您输入并验证您的手机号码。接下来,再次回到Mailgun仪表板。
同样,Mailgun也要求创建一个网站域名的子域,例如mg.yourdomain.com
(此处不展开说明)。
创建子域后,返回到Mailgun仪表板,然后转到 Domains » Subdomains 页面。
接下来,输入前面创建好的域名子域。
只需将“Domain region”设置为US即可,除非您在EU内。
点击下面的“Advanced Settings (DKIM)”链接进入DKIM设置。
选中“Create DKIM Authority”复选框,“DKIM key length”选择为2048。
然后,继续并点击“Add Domain”按钮。
您将进入域名验证步骤-“Add DNS records for sending”。
您需要登录域名管理网站的域名解析管理,并将特定的DNS记录添加到您的子域中。同样,不对域名验证部分展开说明。根据相关提示操作即可。
在域名解析管理按要求输入TXT和MX记录后,点击页面底部的“Verify DNS Settings”按钮。
接着您将看到一个询问您要如何发送电子邮件的界面。忽略它,转到Settings » API key页面。点击Private API key旁边的查看按钮后将其复制。
接下来,将复制好的private API key粘贴到WP Mail SMTP设置中。同时输入前面设置的子域名和选择了正确的区域,最后点击“Save Settings”按钮。
最后还是测试下所设置的SMTP邮局是否有效,尝试给自己发封邮件看看。
使用SendGrid提供的SMTP服务器发送邮件
SendGrid提供前30天内免费发送最多40,000封电子邮件。之后,每天最多提供100封免费电子邮件。
首先,访问SendGrid网站并单击“Start For Free”按钮来创建免费帐户。
创建帐户后,进入SendGrid仪表盘。
第一步,单击“Create a Single Sender”按钮创建发件人身份。
然后,输入发件人姓名、发件人邮箱地址,接受回复邮件邮箱地址,公司地址及其他地址信息,昵称等。
重要提示:From Email Address必须与WP Mail SMTP设置的“From address”的电子邮件地址相同。
然后,在“Senders ”表中可以看到您的详细信息。
您将收到验证电子邮件邮件,以验证此公司电子邮件地址。
成功验证电子邮件地址后,点击侧边栏中的“Dashboard”链接返回到SendGrid仪表盘。
点击“ Web API and SMTP Relay”选项的“Start”按钮进入下个步骤。
在下一个界面,选择“SMTP Relay”选项。
接下来,输入API密钥名称后点击“Create Key”按钮。
然后将会为你生成一串API密钥。
回到WordPress仪表盘的WP Mail SMTP » Settings。选择SendGrid发信,输入刚刚生成的SendGrid API密钥,然后点击“Save Settings”按钮。
接下来,进一步验证集成工作是否正常。首先,转到WP Mail SMTP设置中的“Email Test”选项卡。然后,输入接收测试邮件的邮箱地址,然后单击“Send Email”按钮。
正常情况您看到一条“测试邮件已成功发送”消息,您也可以接收邮件的电子邮件收件箱查看是否收到邮件。
测试邮件已成功发送,即返回到SendGrid API页面的选项卡。选中“I’ve updated my settings”框后,点击“Next: Verify Integration”按钮。
在下一个页面上,点击“Verify Integration”按钮。您应该会看到下面这条消息。
接下来,还需要创建并验证子域,以帮助提高电子邮件的可传递性。
提示:如果您没有创建和验证子域,则来自您网站的电子邮件仍将发送出去。但是,有可能某些电子邮件服务商可能会直接拦截掉。
为您的网站创建一个子域,例如sg.yourdomain.com
。此处略掉创建子域的说明步骤。
创建子域后,将其添加到SendGrid帐户中。转到SendGrid帐户中的“Settings » Sender Authentication”页面。在“Authenticate Your Domain”下,点击“Get Started”按钮。
- (1)选择DNS主机,即你的域名提供商或者域名解析管理服务商。
- (2)“Would you also like to brand the links for this domain?”选择是。即电子邮件将显示为来自您的域,而不是来自SendGrid的域。
然后,点击Next按钮。
现在,在“Domain You Send From”框中输入您的网站域名。然后单击“Advanced Settings”链接,展开更多设置选项。
取消选中“Use automated security”框,选中“Use custom return path”框。然后,在“Return Path”键入子域的第一部分。例如,如果子域是sg.example.com
,则键入sg
。
完成此操作后,点击“Next”按钮。
接着下来,将会看到一些需要添加到域中的DNS记录。(此处略过域名管理的DNS记录添加步骤。)
添加记录后,点击页面底部的“Verify”按钮。看到一条成功消息即说明成功配置。
最后,再次测试您的SMTP电子邮件,以确保正确发送了电子邮件。
测试SMTP邮局是否正常
完成上述任意一个SMTP邮局的配置后,最后一步是测试电子邮件发送,以确保一切正常。
首先,转到WP Mail SMTP设置中的“Email Test”标签。然后,输入接收测试邮件的电子邮件地址(如果它与默认电子邮件地址不同)。
点击“Send Email”按钮,即可发送测试邮件。正常情况下,会看到提示电子邮件已成功发送消息。
接下来,去接收测试邮件的邮箱查看,以确保已收到测试电子邮件。
其他免费SMTP邮局推荐
除了上述提到的SMTP服务商,你还可以选用其他一些免费的SMTP邮件服务商选项,但在这里不再对这些选项逐个展开说明。
- Outlook:与其他方法相比,配置更加复杂,优点是限制不大(每分钟最多10,000个),但成功率未必有保障。
- Amazon SES:如果技术了得可以尝试此选项,因为设置非常复杂。第一年免费。
- SMTP.com:可靠的选项。缺点是仅30天内免费,之后必须自掏腰包。
对于上述三个选项,您可以通过在WP Mail SMTP设置页面上选择邮件程序,然后单击文档链接来获得说明。
此外,对于国内站长,又或者说面向国内用户的网站,可以考虑使用QQ邮箱或者163邮箱的SMTP,或者可靠性更高一些。
RSS