我想首先提一下我在这里找到的一个非常相似的问题,但我在那里提出了答案,但仍然没有用,所以我在这里发布了我的问题。
<?php
/**
* Plugin Name: GCI Contact Form
* Plugin URI: http://www.example.com
* Description: A Simple Plugin To Implement Contact Form into your WordPress Site
* Version: 0.0.1
* Author: Parnasree Chowdhury
* Author URI: http://www.example.com
* License: GPL2
*/
function html_form_code() {
echo '<form method="post" action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '">';
echo '<fieldset>';
echo '<input type="text" name="cf-name" value="' .esc_attr( isset( $_POST["cf-name"] ) ? $_POST["cf-name"] : '' ) . '" placeholder="Name*" class="form-control form-dark" required/>';
echo '<input type="email" name="cf-email" value="' . esc_attr( isset( $_POST["cf-email"] ) ? $_POST["cf-email"] : '' ) . '" placeholder="Email*" class="form-control form-dark" required/>';
echo '<textarea rows="6" name="cf-message" placeholder="Message*" class="form-control form-dark" required>' . esc_attr( isset( $_POST["cf-message"] ) ? $_POST["cf-message"] : '' ) . '</textarea>';
echo '<input name="cf-submitted" class="btn btn-border border-white" type="submit" value="Submit" />';
//echo '<input type="hidden" name="action" value="gci_deliver_mail" />';
echo '<div class="loading"></div>';
echo '</fieldset>';
echo '</form>';
}
function gci_deliver_mail() {
// if the submit button is clicked, send the email
if ( isset( $_POST['cf-submitted'] ) ) {
// sanitize form values
$name = sanitize_text_field($_POST["cf-name"]);
$email = sanitize_email($_POST["cf-email"]) ;
$subject = "Enquiry message submitted from iceindia";
$message = esc_textarea($_POST["cf-message"]);
// get the blog administrator's email address
$to = 'mymailid@gmail.com';
$headers = "From: $name <$email>" . "\r\n";
// If email has been process for sending, display a success message
if ( wp_mail( $to, $subject, $message, $headers ) ) {
echo '<div>';
echo '<p>Thanks for contacting me, expect a response soon.</p>';
echo '</div>';
} else {
echo 'An unexpected error occurred';
}
}
}
function cf_shortcode() {
ob_start();
gci_deliver_mail();
html_form_code();
return ob_get_clean();
}
add_shortcode( 'gci_contact_form', 'cf_shortcode' );
?>
以上是我的联系表格插件代码。 我在主题的首页使用了短代码,如下所示: - &gt;
<div class="contact-form">
<?php echo do_shortcode('[gci_contact_form]');?>
</div>
它工作得很完美,联系表格会出现在我的主题的首页,因为它应该是,甚至表单正在提交,但邮件没有被发送它触发错误,即回应gci_deliver_mail的else部分中的错误()函数。
以下是发生错误的屏幕截图 - &gt; http://tinyurl.com/omcp7zz 提前致谢
我在else部分添加了以下行: - &gt;
var_dump($to, $subject, $message, $headers);
现在输出:
string(23)“mymaildid@gmail.com”string(39)“从iceindia提交的查询消息”string(4)“test”string(27)“From:par”发生意外错误
答案 0 :(得分:0)
更改此行
$headers = "From: $name <$email>" . "\r\n";
到
$headers = "From: " . $name . " <" . $email. ">" . "\r\n";
也许你在$ name
中有任何未转义的数据答案 1 :(得分:0)
正如你提到你的输出。我认为你的标题有错误 只需删除或评论标题。然后它就会将邮件发送到您的邮件。
// $ headers =&#34;来自:$ name&#34; 。 &#34; \ r \ n&#34 ;; 谢谢。
答案 2 :(得分:0)
首先检查您的邮件服务器是否正常工作。 您可以安装Easy SMTP邮件插件Download From Here。 尝试发送测试邮件。
答案 3 :(得分:0)
仅使用在wordpress中创建博客时注册的博客管理员邮件ID。 例: *
**如果您的博客名称是example.com,请使用您的邮件ID为admin@example.com *
**