Questions tagged «wp-mail»

wp_mail()是PHPMailer的包装,而PHPMailer是PHP的mail()函数的包装。

4
有没有一种方法可以使用Wordpress的wp_mail函数发送HTML格式的电子邮件?
是否有一个action_hook或类似的东西可以帮助我实现这一目标? 我尝试在PHP字符串变量中添加标记,然后使用wp_mail函数触发了电子邮件,如下所示: $email_to = 'someaddress@gmail.com'; $email_subject = 'Email subject'; $email_body = "<html><body><h1>Hello World!</h1></body></html>"; $send_mail = wp_mail($email_to, $email_subject, $email_body); 但是它显示为纯文本吗? 有任何想法吗?

7
通过wp_mail()发送多部分(文本/ html)电子邮件可能会导致您的域被禁止
摘要 由于WP Core中存在一个错误,具有讽刺意味的是,您的域被Hotmail(和其他Microsoft电子邮件)阻止了,因此使用wp_mail()发送多部分电子邮件(html /文本)(以减少电子邮件最终进入垃圾邮件文件夹的可能性)。 这是一个复杂的问题,我将详细分解以帮助某人找到可行的解决方案,并最终在核心中实现。 这将是一个有益的阅读。让我们开始... 错误 避免使时事通讯电子邮件最终进入垃圾邮件文件夹的最常见建议是发送多部分邮件。 多部分(MIME)是指在一封电子邮件中同时发送电子邮件的HTML和TEXT部分。客户端收到多部分消息时,如果可以呈现HTML,则接受HTML版本,否则将呈现纯文本版本。 事实证明这是可行的。当发送到gmail时,我们所有的电子邮件都将放入垃圾邮件文件夹,直到当它们到达主收件箱时我们将邮件更改为多部分。好东西。 现在,当通过wp_mail()发送多部分消息时,它将两次输出内容类型(multipart / *),一次是带有边界(如果是自定义设置的),一次是没有边界的。此行为导致电子邮件被显示为原始消息,而不是包括某些所有 Microsoft(Hotmail,Outlook等)在内的某些电子邮件的一部分。 Microsoft将将此邮件标记为垃圾邮件,而接收到的少量邮件将由收件人手动标记。不幸的是,Microsoft电子邮件地址被广泛使用。我们有40%的订户使用它。 微软通过我们最近进行的电子邮件交换确认了这一点。 标记消息将导致域被完全阻止。这意味着该邮件将不会发送到垃圾邮件文件夹,甚至根本不会发送给收件人。 到目前为止,我们已经屏蔽了3次主域名。 因为这是WP核心中的错误,所以发送多部分消息的每个域都被阻止。问题是大多数网站管理员都不知道为什么。我在进行研究时发现这一点,并看到其他用户在论坛等上进行讨论。这需要深入研究原始代码,并对这些电子邮件的工作方式有充分的了解,我们将继续进行下一步... 让我们将其分解为代码 创建一个hotmail / outlook帐户。然后,运行以下代码: // Set $to to an hotmail.com or outlook.com email $to = "YourEmail@hotmail.com"; $subject = 'wp_mail testing multipart'; $message = '------=_Part_18243133_1346573420.1408991447668 Content-Type: text/plain; charset=UTF-8 Hello world! This is …
37 email  wp-mail  bug 

5
当普通的旧PHP mail()可以使用时,为什么wp_mail()不让我设置From:标头?
当我使用wp_mail( $to, $subject, $message, $headers )(当然有适当的值)时,将使用发自名称的电子邮件和未在我能找到的任何地方设置的电子邮件(即使在PHP或Apache设置中也是如此)发送电子邮件。但是,使用mail( $to, $subject, $message, $headers )替代方法就可以了。会发生什么wp_mail()导致这种情况?
32 headers  wp-mail  email 



1
将wp_mail与附件一起使用,但未收到附件
我一直在研究包括该示例在内的多个示例。 我没有收到电子邮件的问题,但是没有附件。我是否缺少文件类型的内容/类型?我看过的所有示例都只使用text / html作为内容类型。 这就是我所拥有的(应斯蒂芬的要求添加) if( isset( $_POST['to'] ) && isset( $_POST['from'] ) ) { global $wpdb; $to = $_POST['to']; $from = $_POST['from']; $name = get_bloginfo('name'); $attachment = $_POST['file']; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: multipart/mixed; charset=iso-8859-1' . "\r\n"; $headers .= 'From: ' . $name . ' …
15 wp-mail 


9
WordPress拒绝发送邮件,“ ...您的主机可能已禁用mail()函数”
我最近在我的网站上实现了评论区,并试图使电子邮件通知正常工作。做出新评论时,它似乎不想发送电子邮件通知。 只是为了查看PHP是否可以发送电子邮件,我试图重置密码(因为您将通过邮件获得一个新密码),然后收到消息: 电子邮件无法发送。可能的原因:您的主机可能已禁用mail()函数 我已经检查了“设置”->“讨论”中的复选框,并且该电子邮件有效,因此这不是设置问题。我尝试创建一个PHP文件并使用发送mail(),并且发送成功。因此,WordPress一定有些奇怪的事情。 有任何想法吗?
9 php  wp-mail  email 

3
如何将标题添加到外发电子邮件?
我想在网站上的外发电子邮件中添加其他标头,以便可以轻松确定哪个网站发送了给定的电子邮件。(我在所有站点上都安装了标准功能插件,因此这样做很容易,并且配置电子邮件客户端以进行过滤并以其他方式对此标头进行操作将节省大量时间。) 我以为插入wp_mail功能很简单,但显然并非如此。 首先,我尝试了这个: add_filter('wp_mail', 'ws_add_site_header'); function ws_add_site_header() { return array('headers' => 'X-WU-Site: ' . parse_url(get_site_url(), PHP_URL_HOST)); } 在这里,我的数组优先于修改邮件设置的其他任何内容(例如Gravity Forms),因此HTML电子邮件开始显示为裸HTML且格式不正确。这是有道理的,因为GF添加的Content-type:标头已清除。但是我的标头已添加到电子邮件中。由于其他人也依赖于收到漂亮的电子邮件(我敢肯定,我所有网站的内容开发人员和最终用户都是如此),所以这是不可接受的。 然后,我的一位同事建议通过wp_parse_args()路由我的东西,因此: add_filter('wp_mail', 'ws_add_site_header'); function ws_add_site_header($args) { $new_header = array('headers' => 'X-WU-Site: ' . parse_url(get_site_url(), PHP_URL_HOST)); return wp_parse_args($args, $new_header); } 这样,就好像我的功能不存在一样-我的标头没有添加,但其他人的标头和邮件设置也没有删除。 在不加扰可能存在的任何其他过滤器的情况下,将标题添加到外发电子邮件的正确方法是什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.