搜索
首页CMS教程WordPress用于 Web 应用程序开发的 WordPress:电子邮件集成

用于 Web 应用程序开发的 WordPress:电子邮件集成

每个网络应用程序的主要组件之一就是发送电子邮件的能力。

现在,这并不意味着每个 Web 应用程序都是自己的邮件客户端(尽管人们确实创建了自己的邮件客户端)。

相反,我的意思是,当用户注册、用户修改密码、系统中的某些内容发生变化时,或者更一般地说,每当发生网站所有者想要通知用户的情况时,应用程序通常会发送电子邮件.

到目前为止,在本系列中,我们已经介绍了:

  • 用户管理
  • 权限
  • 会话管理

上一篇文章可以说是我们将要介绍的最复杂的文章之一;但是,对于那些希望向项目添加更多高级功能的人来说,这是必要的。

话虽如此,我们将从一些更复杂的材料中休息一下,看看 WordPress 在发送电子邮件方面必须提供什么。


了解电子邮件

在我们深入了解 WordPress API 在发送电子邮件、自定义电子邮件等方面提供的功能之前,了解有关电子邮件的一些知识非常重要。

也就是说,了解创建实际电子邮件的组成部分非常重要 - 毕竟,它不仅仅是地址、主题和内容。

在我们开始构建自己的自定义电子邮件之前,有一些技术上的细微差别值得理解。

标题

简而言之,电子邮件标头包含最少的信息集,包括:电子邮件的发送者以及电子邮件的发送地址。

通常,您可能会看到标头中包含的其他信息。例如,此信息可能包括发送电子邮件的时间戳。

对于 WordPress,除非另有指定,否则电子邮件标头中指定的发件人始终被定义为 WordPress 中的默认发件人。

例如,如果您希望将回复地址设置为“donotreply@domain.com”,那么您必须对此进行自定义。

此外,通常最好以数组的形式使用电子邮件标头,以便您可以轻松构建、指定和传递地址、抄送地址和密件抄送收件人。

MIME 类型

当谈到电子邮件遵循的格式时,您可能会看到两种形式:

  • 纯文本
  • HTML

您已经习惯在大多数现代电子邮件客户端中看到 HTML;但是,如果您有一个更简单的客户端,将其设置为仅显示纯文本,或者您在稍旧的手机上阅读电子邮件,那么您将以纯文本形式阅读内容。

WordPress 可以以纯文本或 HTML 形式发送电子邮件。

当我们查看如何以编程方式发送电子邮件的示例时,我们将具体了解如何做到这一点。简而言之,有一个钩子可以让它变得非常简单 - 但我们会等待看到它的实际效果,直到我们介绍电子邮件的其余必要部分。

附件

如您所知,附件实际上是您附加到电子邮件并发送给收件人的任何文件。

问题是,有一些管理电子邮件的规则 - 但它们不一定是由软件设置的。相反,服务器、电子邮件客户端和其他各种规则限制了我们可以在收件箱中接收的内容。

例如:

  • 某些客户端不允许发送 zip 文件或可执行文件
  • 许多电子邮件服务都有可附加的最大文件大小限制
  • 某些类型的电子邮件可能会根据其附件(或其内容)被标记为垃圾邮件

无论如何,这超出了我们的控制范围 - 我们只需要知道我们向谁发送电子邮件的限制,并确保我们遵守这些限制。

为此,创建通过 WordPress 电子邮件发送的附件非常简单。

虽然附件显然不是必需的,但您可能想要附加单个文件甚至多个文件。在 WordPress 中,这可以通过字符串或数组来完成。

我们现在不会具体了解如何做到这一点,但当我们查看如何以编程方式发送电子邮件的示例时,我们立即了解这一点。

收件人、主题和消息

在最基本的层面上,每封电子邮件都包含一个“收件人”电子邮件地址、一个“主题”和一个“消息” ”。

在 WordPress 中,这些设置也非常容易 - 只需为每个设置提供字符串,然后就可以开始了。

当然,如果您想向多个人发送电子邮件,您可以迭代地址集合并为每个用户发送一封电子邮件,或者您可以向 WordPress 提供一组收件人邮件 API,它会将电子邮件发送给所有包含在内的人。

请记住:如果您想指定不同的 reply-to 地址,请在我们在本文前面介绍的标头中指定该地址。


使用 WordPress 电子邮件 API

综上所述,我们准备好实际了解一下 WordPress 电子邮件 API。

简而言之,所有功能都包含在一个名为 wp_mail 的函数中;但是,如果我们想充分利用该应用程序提供的功能,有一些我们需要注意的地方。

所需的挂钩

具体来说,我们将使用以下钩子:

  • wp_mail_content_type 允许我们定义正在发送的电子邮件的 MIME 类型
  • wp_mail_from 是一个过滤器,我们可以使用它来定义发件人地址,而不是使用 $headers 数组
  • wp_mail_from_name 是一个过滤器,我们可以使用它来定义此人的发件人,而不是使用 $headers 数组
  • wp_login 是我们用于演示的钩子,这样每当有人登录 WordPress 仪表板时我们就会向某人发送电子邮件

为了完整起见,我将在下面分享整个代码,然后我们将逐步完成它。

源代码

<?php
function acme_email_individual( $input ) {

	/**
	 * Note: assume that $input has keys for 'email-address'.
	 */

	// Generate the password
	$password = wp_generate_password ( 12, false );

	// Email the user that they're profile was created
	$message = 'Hey There,';
	$message .= '<br /><br />';
	$message .= 'Your account has been created. Your login information is below:';
	$message .= '<br />';
	$message .= '<ul>';
		$message .= '<li>Username: ' . $input['email-address'] . '</li>';
		$message .= '<li>Password: ' . $password . '</li>';
	$message .= '</ul>';
	$message .= '<br />';
	$message .= 'You can login to the application <a href="' . get_bloginfo( 'siteurl' ) . '">here</a>.';

	add_filter( 'wp_mail_content_type', create_function( '', 'return "text/html";' ) );
	add_filter( 'wp_mail_from', 'acme_mail_from' );
	add_filter( 'wp_mail_from_name', 'acme_mail_from_name' );
	wp_mail( $input['email-address'], 'Your Acme Account Has Been Created!', $message, array() );

}

function acme_mail_from( $email ) {
	// NOTE: replace [at] with @. This was causing problems with the syntax highlighter.
	return 'donotreply[at]acme.com';
}

function acme_mail_from_name( $name ) {
	return 'The Acme Company';
}

如果您到目前为止一直在阅读本文,那么这一切都不会太令人惊讶:毕竟,我们正在利用 WordPress 提供的挂钩,我们正在构建字符串作为函数参数传递,然后我们调用 wp_mail 函数。

但是请注意,我们传递一个空数组作为此电子邮件的 $headers 参数。这是因为我们使用自定义过滤器来设置“发件人名称”和“发件人地址”,使用过滤器和挂钩函数而不是数组。

这种方式不一定比其他方式更好;然而,它的目的是证明有多种方法可以达到相同的结果。


现在,转向数据!

这是 WordPress 的另一个功能,可以让您轻松地将电子邮件功能包含到您的 Web 应用程序中。

事实上,我认为 WordPress 的事件模型使得在任何可以想象到的场景中引入电子邮件功能变得异常容易 - 如果有可用的钩子,就可以发送电子邮件。

话虽如此,是时候将我们的注意力转向 Web 应用程序开发最常见的方面之一:数据管理。

具体来说,我们需要研究如何将信息保存到数据库并从数据中检索信息,以及如何安全有效地完成这些操作。

因此,从下一篇文章开始,我们将这样做。

以上是用于 Web 应用程序开发的 WordPress:电子邮件集成的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
WordPress的插件生态系统如何增强其CMS功能?WordPress的插件生态系统如何增强其CMS功能?May 14, 2025 am 12:20 AM

WordPressPluginsscmscmscapabilities byferingCustomization和Functionality.1)超过50,000pluginsallowuserstalostailortheortheortheortheirsiteirsiteforseo,e-Commerce和security.2)pluginScaneCanextendCorefeatures,likeaddingcustostostposttypes.3 bullycanc.3)

WordPress适合电子商务吗?WordPress适合电子商务吗?May 13, 2025 am 12:05 AM

是的,WordPress非常适合做电商。 1)通过WooCommerce插件,WordPress可以快速变成功能全面的在线商店。 2)需要关注性能优化和安全性,定期更新和使用缓存、安全插件是关键。 3)WordPress提供了丰富的定制选项,提升用户体验和SEO优化效果显着。

如何在 Yandex 网站管理员工具中添加您的 WordPress 网站如何在 Yandex 网站管理员工具中添加您的 WordPress 网站May 12, 2025 pm 09:06 PM

您想将您的网站连接到Yandex网站管理员工具吗?Google搜索控制台、Bing和Yandex等网站管理员工具可帮助您优化网站、监控流量、管理robots.txt、检查网站错误等。在本文中,我们将分享如何在Yandex网站管理员工具中添加您的WordPress网站来监控您的搜索引擎流量。什么是Yandex?Yandex是一个位于俄罗斯的流行搜索引擎,类似于Google和Bing。您可以在Yandex中优

如何修复 WordPress 中的 HTTP 图片上传错误(简单)如何修复 WordPress 中的 HTTP 图片上传错误(简单)May 12, 2025 pm 09:03 PM

您需要修复WordPress中的HTTP图片上传错误吗?当您在WordPress中创建内容时,此错误可能会特别令人沮丧。当您使用内置WordPress媒体库将图像或其他文件上传到CMS时,通常会发生这种情况。在本文中,我们将向您展示如何轻松修复WordPress中的HTTP图片上传错误。WordPress媒体上传过程中出现HTTP错误的原因是什么?当您尝试使用WordPress媒体上传器将文件上传到Wo

如何修复添加媒体按钮在 WordPress 中不起作用的问题如何修复添加媒体按钮在 WordPress 中不起作用的问题May 12, 2025 pm 09:00 PM

最近,我们的一位读者报告说,他们的WordPress网站上的“添加媒体”按钮突然停止工作。此经典编辑器问题不会显示任何错误或警告,这使用户不知道为什么他们的“添加媒体”按钮不起作用。在本文中,我们将向您展示如何轻松修复WordPress中的“添加媒体”按钮不起作用的问题。是什么导致WordPress“添加媒体”按钮停止工作?如果您仍在使用旧的经典WordPress编辑器,那么“添加媒体”按钮允许您将图像、视频等插入博客文章中。

如何设置、获取和删除 WordPress Cookie(像专业人士一样)如何设置、获取和删除 WordPress Cookie(像专业人士一样)May 12, 2025 pm 08:57 PM

您想了解如何在WordPress网站上使用cookie吗?Cookie是在用户浏览器中存储临时信息的有用工具。您可以使用此信息通过个性化和行为定位来增强用户体验。在本终极指南中,我们将向您展示如何像专业人士一样设置、获取和删除WordPresscookie。注意:这是一个高级教程。它要求您精通HTML、CSS、WordPress网站和PHP。什么是Cookie?Cookie是用户访问网站时创建并存储在用户浏览

如何修复 WordPress 429 请求过多错误如何修复 WordPress 429 请求过多错误May 12, 2025 pm 08:54 PM

您是否在WordPress网站上看到“429请求过多”错误?此错误消息意味着用户向您网站的服务器发送了太多HTTP请求。此错误可能会非常令人沮丧,因为很难找出导致该错误的原因。在本文中,我们将向您展示如何轻松修复“WordPress429TooManyRequests”错误。是什么原因导致WordPress429请求过多错误?“429TooManyRequests”错误的最常见原因是用户、机器人或脚本尝试向网站

WordPress作为大型网站的CMS有多可扩展?WordPress作为大型网站的CMS有多可扩展?May 12, 2025 am 12:08 AM

WordPressCanHandLeLArgeWebsitesWithCareFulplanningAndOptimization.1)USECACHINGTOREDUCESERVERVERLOAD.2)优化YourdataBaseRegularly.3)actizeyourdatabaseregularly.3)ackdntododistibutecontent.4))

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。