前几天一个多年的站长朋友问我wordpress发送邮件的功能问题,其实WordPress内置了一套用于提醒用户的邮件系统,并提供了wp_mail函数用于发送邮件。只是由于服务器提供商一般都没有安装邮件服务,所以直接使用会报错,但是我们可以通过smtp插件来恢复服务,当然你也可以自己配置主机的mail服务,但是那样做会让你的邮件出现在垃圾箱里!
复制
wp_mail( string|array $to, string $subject, string $message, string|array $headers = '',string|array $attachments = array() )
官方描述:像PHP发送邮件一样,发送邮件。
函数介绍:
真正的返回值并不意味着用户成功地收到了电子邮件。这仅仅意味着所使用的方法能够处理请求而没有任何错误。使用两个‘wp_mail_FROM’和‘wp_mail_FROM_name’挂钩允许在设置‘name email@Address.com’这样的FROM地址时创建FROM地址。如果只设置‘wp_mail_From’,那么只使用电子邮件地址而不使用名称。默认的内容类型是“text/plain”,它不允许使用HTML。但是,您可以使用‘wp_mail_content_type’过滤器来设置电子邮件的内容类型。默认字符集基于博客中使用的字符集。可以使用‘wp_mail_charset’过滤器来设置字符集。
参数:
- $to
(string|array) (Required)收信人地址,多个收信人使用数组形式。 - $subject
(string) (Required) 邮件主题 - $message
(string) (Required) 邮件内容 - $headers
(string|array) (Optional) 额外的头部.
Default value: ” - $attachments
(string|array) (Optional) 附件.
Default value: array()
返回值:
(bool) 当邮件发送过程不报错时返回true
使用实例
发送HTML邮件
复制
$to = 'sendto@example.com'; $subject = 'The subject'; $body = 'The email body content'; $headers = array('Content-Type: text/html; charset=UTF-8'); wp_mail( $to, $subject, $body, $headers );
指定额外的头部可以发送HTML内容的邮件。
使用数组形式发送邮件
复制
<?php // assumes $to, $subject, $message have already been defined earlier... $headers[] = 'From: Me Myself <me@example.net>'; $headers[] = 'Cc: John Q Codex <jqc@wordpress.org>'; $headers[] = 'Cc: iluvwp@wordpress.org'; // note you can just use a simple email address wp_mail( $to, $subject, $message, $headers ); ?>
使用phpmailer替代mail发送邮件时配置smtp
复制
add_action( 'phpmailer_init', 'mailer_config', 10, 1); function mailer_config(PHPMailer $mailer){ $mailer->IsSMTP(); $mailer->Host = "mail.telemar.it"; // your SMTP server $mailer->Port = 25; $mailer->SMTPDebug = 2; // write 0 if you don't want to see client/server communication in page $mailer->CharSet = "utf-8"; }
使用额外的头部发送HTML内容邮件
复制
$to = 'emailsendto@example.com'; $subject = 'The subject'; $body = 'The email body content'; $headers = array('Content-Type: text/html; charset=UTF-8','From: My Site Name <support@example.com'); wp_mail( $to, $subject, $body, $headers );
评论 (2)