PHP 向用户在插件文件中输入的地址发送电子邮件

Posted

技术标签:

【中文标题】PHP 向用户在插件文件中输入的地址发送电子邮件【英文标题】:PHP send email to address entered by user in a plugin file 【发布时间】:2016-09-12 03:14:01 【问题描述】:

我正在为 wordpress 创建一个表单构建器插件。在插件设置中,用户可以设置收件人电子邮件地址 - 代码在文件 class-form-b​​uilder.php 中。

我有一个名为 class-send-form.php 的文件,它是一个 php 邮件处理程序。我正在尝试将用户输入的电子邮件地址添加到此文件但返回错误。

在 class-form-b​​uilder.php 我有以下代码:

class Layers_Form_Builder_Widget extends Layers_Widget 

    ...

    function send_to_email() 
        return 'sam@skizzar.com';
    

    ...


在我获取用户输入的值之前,我正在使用硬编码的电子邮件地址尝试使其正常工作。

然后在 class-send-form.php 我有以下代码:

require_once('../../../../wp-load.php');

$layers_email_address = Layers_Form_Builder_Widget::send_email_to();

// if there are any errors in our errors array, return a success boolean of false
if (!empty($errors)) 
// if there are items in our errors array, return those errors
$data['success'] = false;
$data['errors'] = $errors;

 else 
parse_str($_REQUEST['formData'], $formFields);
$html='<html><body>';
foreach ($formFields as $key => $value) 
    $html .= '<p><label>' . $key . ' :</label> ' . $value . '</p>';

$html .='</body></html>';
$to = $layers_email_address;
$subject = "Form Submission";
$txt = $html;
$headers = "From: <".$to.">". "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1"."\r\n";
mail($to,$subject,$txt,$headers);

// if there are no errors process our form, then return a message

// show a message of success and provide a true success variable
$data['success'] = true;
$data['message'] = 'Success!';


// return all our data to an AJAX call
echo json_encode($data);

但是,当我单击发送时,我只是收到一个错误(“提交表单时出错”)。

如何从 class-form-b​​uilder.php 中获取电子邮件地址的值并在 class-send-form.php 中使用?

【问题讨论】:

【参考方案1】:

class-send-form.php中使用的函数名是send_email_to()class-form-builder.php中定义的函数名是send_to_email()

我认为一旦你解决了这个问题,它就会起作用。

【讨论】:

哦,天哪,我怎么会错过这个——现在才星期一!!!感谢您指出这一点,它现在可以工作了 @SamSkirrow 有时我们只是错过了一些小细节。 :D

以上是关于PHP 向用户在插件文件中输入的地址发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

企业需要通过 PHP 自动通过电子邮件发送安全信息

是否可以使用 PHP 异步发送电子邮件,同时向用户提供有关交付的反馈?

使用 PHP 向 Facebook 群组邮件地址发送电子邮件

如何在 php 中向数千名用户发送安全(爆炸)电子邮件?

通过 PHP 向许多用户发送邮件的安全方式

如何在 PHP 中向用户发送每日电子邮件通知?