快速解决 Kadence 表单阻止电子邮件传递问题
已发表: 2023-06-12TL;DR:如果您在提交表单时没有收到 Kadence 表单阻止电子邮件,请检查表单阻止设置。 确保表单块设置为使用与“回复”地址相同的“发件人”地址通过电子邮件发送提交。 这应该是使用与表单所在站点相同的域的实际地址。 如果您需要更复杂的电子邮件路由解决方案,本文还介绍了如何配置 WordPress、SMTP 和 DNS 设置,以便传送 WordPress 生成的电子邮件。
如果您使用 Kadence Form Block 设置了联系表格,并且表格提交未通过电子邮件发送,则可能有多种原因。 他们中的大多数不涉及Kadence。 电子邮件的可送达性主要取决于您如何配置 WordPress、您域名的电子邮件 DNS 设置以及您用于从 WordPress 生成和发送电子邮件的方法。
首先,您应该确认您的站点域没有被列入垃圾邮件黑名单。 这可以解释可传递性问题。
其次,您应该确认您的网站正在使用简单的电子邮件日志插件发送电子邮件。
如果你没有被列入黑名单,电子邮件正在发送,但你没有收到它们,你的 Kadence 表单块设置是开始深入挖掘的地方。
让我们来看看。
Kadence 表单提交后阻止电子邮件操作
首先,检查表单块设置中的提交后操作参数。
应选中第一个选项Email ,如右侧屏幕截图所示。
Kadence 表单阻止电子邮件设置
接下来,检查表单块的后端电子邮件设置。 From Email和Reply-To字段是最重要的,如屏幕截图所示。
如果您的表单提交电子邮件看起来是垃圾邮件,则它们可能不会发送到接收邮件主机。 如果您的设置造成以下情况,它们可能看起来像垃圾邮件:
- “发件人”电子邮件与表单所在网站的域不匹配。
- “发件人”电子邮件与 WordPress 常规设置中的管理电子邮件地址不匹配。
- “发件人”地址不是真实的电子邮件帐户或转发别名。
- “回复”地址不同于“发件人”电子邮件。
- “电子邮件主题”行是空白的。
- 使用了“抄送”和“密送”字段——或者更糟的是,它们塞满了多个收件人。
许多电子邮件客户端(用于发送或接收电子邮件的软件应用程序,如 Gmail 或 Outlook)不会发送主题行为空或电子邮件正文中没有消息内容的电子邮件。 用于测试目的的简短无意义消息看起来像垃圾邮件,可能不会被发送或传递。
简单的解决方案
在“发件人”地址中使用与“回复”地址不同的域发送电子邮件可能会影响其送达能力。 一些电子邮件提供商可能会将差异视为潜在垃圾邮件或网络钓鱼的迹象。
一致性是建立信任并提高成功发送电子邮件的机会的最佳选择。 因此,确保您的 Kadence 表单块电子邮件被发送的最直接且可能是最好的方法是使“发件人”和“回复”字段中的地址保持一致。 发件人/回复地址也应该是 WordPress 常规设置中的默认管理电子邮件地址。
不要忘记将 Kadence 验证码添加到您的表单中以阻止垃圾邮件发送者!
不那么简单的解决方案
使用默认阻止设置并直接回复表单中的电子邮件可能会很方便。 您可能希望将回复发送到与表单提交关联的地址。 或者,某些电子邮件主机可能会拒绝您的表单提交电子邮件,即使您已按照上述设置进行设置。
设置 WordPress 以发送合法电子邮件
默认情况下,WordPress 使用邮件函数wp_mail()
作为 PHPMailer 类的包装器,PHPMailer 类是一个用于生成电子邮件的 PHP 库,它扩展了 PHP mail() 函数。 这可以正常工作,但默认情况下,没有验证消息是由它指定的发件人发送的。
如此多的人为了垃圾邮件目的而错误配置和滥用 PHP,以至于电子邮件主机经常怀疑他们。 任何由 PHP 而不是实际电子邮件用户生成的传入消息更有可能被垃圾邮件过滤器阻止。 使 PHP 邮件为您工作的最佳做法是确保设置它使用的域来验证这些电子邮件的有效性。
DKIM、SPF 和 DMARC
这些是您的 DNS 设置中所有类型的 TXT 记录。 DKIM 验证邮件,SPF 验证发送邮件的服务器,DMARC 使用 DKIM 和 SPF 来确保电子邮件的“发件人”地址与连接到正确设置为发送电子邮件的服务器的域相匹配。 DMARC 还指示收件人应如何处理未通过身份验证的电子邮件,并提供电子邮件地址以反馈有关您的邮件的接收方式。
理想情况下,每个包含从 WordPress、时事通讯服务或任何其他应用程序发送或归因于它的电子邮件的域都应充分配置和维护 DKIM、SPF 和 DMARC 记录。 如果您使用 PHP 发送电子邮件,这些步骤对于确定其真实性更为关键。
邮件传输协议
将 WordPress 设置为使用 SMTP 而不是 PHP 来发送电子邮件是解决可传递性问题的最常见方法。
一些托管的 WordPress 主机可能提供内置或第三方 SMTP 服务来处理 WordPress 生成的交易电子邮件。 如果您使用这样的主机,您可能需要为 SMTP 设置 WordPress。 这曾经是 WordPress 主机之间的常见产品; 今天,您更有可能需要设置自己的 SMTP 服务。 Mailgun 和 Postmark 是通常推荐的低成本或免费选项。 这些需要安装一个插件,然后通过他们的服务发送电子邮件。
您也可以使用 Gmail。 许多 WordPress 插件和教程解释了如何设置 WordPress 以在免费 Gmail 帐户上通过 SMTP 发送电子邮件。 但是,这是有限制的,并且不能保证 Google 会支持这种非官方支持的免费 Gmail 帐户的使用。 他们确实明确支持将 SMTP 与 Google Workspace 结合使用的应用。
无论您选择使用什么 SMTP 服务,您都需要通过完成以下设置并将它们添加到wp-config.php
告诉 WordPress 如何访问它:
// SMTP Settings define( 'SMTP_username', '[email protected]' ); // SMTP Username define( 'SMTP_password', 'password' ); // SMTP Password define( 'SMTP_server', 'smtp.email.com' ); // SMTP Server Address define( 'SMTP_FROM', '[email protected]' ); // "From" Email Address define( 'SMTP_NAME', 'Your Name' ); // "From" Name define( 'SMTP_PORT', '587' ); // Server Port Number, usually 25, 465 or 587 define( 'SMTP_SECURE', 'tls' ); // Encryption - SSL or TLS define( 'SMTP_AUTH', true ); // Use SMTP authentication (True or False) define( 'SMTP_DEBUG', 0 ); // Turn debugging on/off (0 or 1)
然后,您需要将以下操作添加为活动代码片段或活动主题的functions.php
文件的一部分:
add_action( 'phpmailer_init', 'my_phpmailer_smtp' ); function my_phpmailer_smtp( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = SMTP_server; $phpmailer->SMTPAuth = SMTP_AUTH; $phpmailer->Port = SMTP_PORT; $phpmailer->Username = SMTP_username; $phpmailer->Password = SMTP_password; $phpmailer->SMTPSecure = SMTP_SECURE; $phpmailer->From = SMTP_FROM; $phpmailer->FromName = SMTP_NAME; }
现在 PHPMailer 将使用 SMTP,而 WordPress 将通过经过身份验证的邮件用户和邮件服务器发送电子邮件。 仅此一项就应该确保相当高的交付能力。 设置您的 DKIM、SPF 和 DMARC 记录以确保最高的交付率和打开率。
您可能会发现,使用为此目的设计的插件,可以更轻松地为任意数量的邮件提供商设置 SMTP。 Nathan Ingram 推荐了一个,并在本文中深入探讨了这个主题。 Kiki Sheldon 在有关在 Nexcess 托管 WordPress 主机上设置 SMTP 的教程中提供了更多技术深度。
确保发送 Kadence 表单块电子邮件的四个简单步骤
总之,如果您在从 Kadence Form Block 发送电子邮件时遇到问题,您可以采取几个故障排除步骤。 虽然大多数潜在问题与 Kadence 没有直接关系,但可以通过检查和配置我们在此处讨论的 WordPress 和 DNS 设置来解决。
- 首先,确保您的站点域没有被列入垃圾邮件黑名单很重要,因为这会影响电子邮件的送达率。 此外,您应该确认您的网站确实在使用电子邮件日志插件发送电子邮件。
- 如果您已排除黑名单并确认正在发送电子邮件,则应关注 Kadence Form Block 设置。 检查块的“提交后的操作”参数并确保选择“电子邮件”选项。 注意电子邮件设置中的“来自电子邮件”和“回复”字段,确保它们符合特定条件。 例如,“发件人”电子邮件应与表单所在网站的域相匹配,并且应该是使用相同域的真实电子邮件帐户。
- 提高电子邮件送达率的最简单解决方案是保持“发件人”和“回复”地址一致,并使用 WordPress 常规设置中的默认管理电子邮件地址。 这种一致性建立了信任并减少了电子邮件被标记为垃圾邮件的机会。
- 但是,如果您需要更复杂的电子邮件路由解决方案,您可能需要配置 WordPress、SMTP 和 DNS 设置。 WordPress 默认使用
wp_mail()
和 PHPmailer,但它们缺乏身份验证,这可能会引起垃圾邮件过滤器的怀疑。 在 DNS 设置中配置 DKIM、SPF 和 DMARC 记录有助于验证 WordPress 创建和发送的电子邮件的真实性。 另一个常见的解决方案是将 WordPress 设置为使用 SMTP 而不是 PHP 来发送电子邮件。 这包括指定 SMTP 设置,将它们添加到wp-config.php
文件,并添加一个使 PHPmailer 使用 SMTP 的函数。
通过执行这些故障排除步骤并确保正确配置 WordPress、您的 DNS 设置和 Kadence Form Blocks,您可以确保 Kadence Form Block 电子邮件的可送达性。 请记住实施其他措施,例如将验证码添加到您的表单中以阻止传入的垃圾邮件。 采取这些措施将有助于确保您提交的表单成功发送到您的收件箱。