无法让这3个脚本很好地播放。 试图使此邮件功能正常工作并发送邮件。 我已经删除了敏感信息,并用通用术语替换了它。 我也有另一个使用preg_match和其他验证方法的php邮件函数,但是它没有用,所以我决定删除它,直到它起作用,然后尝试再次添加验证服务器端。

我不太擅长PHP,但是我决定将头绪缠在这上面,所以我们将不胜感激。

我通常在我的沼泽上测试所有这些,但是有一个实时开发服务器@ marinetechegypt.com/contact.php/,可能不是最新的。

这是所有相关文件的内容。

HTML表单(contact.php)

            <div class="col one-half">
            <h3> Send us an Email </h3>
                <div class="ajax_message"></div>
                <form class="contact-form" method="post" action="php-mailer.php">
                    <input type="hidden" name="ac" value="login" />
                    <p>
                        <label for="fname"> Your Name <span class="required"> * </span> </label>
                        <input type="text" name="fname" class="input-short" id="fname" placeholder="Your Full Name" />
                        <?php if(isset($errName1)) echo $errName1; ?>
                    </p>
                    <p>
                        <label for="email"> Your Email <span class="required"> * </span> </label>
                        <input type="text" name="email" class="input-long" id="email" placeholder="Your Email" />
                        <?php if(isset($errEmail)) echo $errEmail; ?>
                    </p>
                    <p>
                        <label> Subject </label>
                        <input name="subject" type="text"  id="subject" class="input-short" placeholder="Subject"/>
                    </p>
                    <p>
                        <label for="message"> Your Message <span class="required"> * </span> </label>
                        <textarea name="message" class="textarea-message" id="textarea" placeholder="Your Message"></textarea>
                        <?php if(isset($errMessage)) echo $errMessage; ?>
                    </p>
                    <p><input name="submit" type="submit" value="Send Message" class="button small grey contact-submit" /></p> 
            </form>
            <div class="error-container" style="display:none;"> Please fill the above required fields correctly! </div>
        </div>

php-mailer.php文件:

<?php 
if(isset($_POST['submit'])) {
       $to = "RecipientEmailInbox";
       $subject = $_POST['subject'];
       $first_name_field = $_POST['fname'];
       $email_field = $_POST['email'];
       $message = $_POST['textarea'];
       $message = "
        Name: $first_name_field
        Email: $email_field
        Message: $message";
        $headers = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

        // Additional headers
    $headers .= 'To: <RecipientEmailInbox>' . "\r\n";
    $headers .= '[From] <SenderEmailInbox>' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
include("OnCompleteURL");
ini_set("sendmail_from","EmailHeaderFrom");
ini_set("SMTP","SMTPAddress");
mail($to, $subject, $message, $headers);
         } else {
                 echo "Error phpmailer";
          }
?>

JS客户端验证

$(document).ready(function(){

$.validator.addMethod("notEqual", function(value, element, param) {
  return this.optional(element) || value != param;
}, "Please choose a value!");


$(".contact-form").each(function(){
    $container = $(this).next("div.error-container");
    //Validate Starts
    $(this).validate({
        onfocusout: function(element) { $(element).valid(); },
        errorContainer: $container,
        rules:{
          fname:{required:true,minlength:3,notEqual:'Your Full Name'},
          email:{required:true,email:true,notEqual:'Your Email'},
          subject:{notEqual:'Subject'},
          message:{notEqual:'Your Message'}

          ,message:{required:true,minlength:10}
        }
    });//Validate End

    //Submit Starts        
    $(this).submit(function(e){
        $frm = $(this);
        $name = $frm.find('*[name=fname]').val();
        $email = $frm.find('*[name=email]').val();
        $subject = $frm.find('*[name=subject]').val();
        $message = $frm.find('*[name=message]').val();

        if($frm.find('*[name=fname]').is('.valid') && $frm.find('*[name=email]').is('.valid')) {
            var action = $frm.attr('action');
            $frm.find('*[name=submit]').attr('disabled', 'disabled').after('');

            $frm.prev(".ajax_message").slideUp(750, function () {
                $ajax_container = $(this);
                $ajax_container.hide();

                $.post(action, {
                    name: $name,
                    email: $email,
                    subject: $subject,
                    message: $message
                    }, function (data) {
                        $ajax_container.html(data);
                        $ajax_container.slideDown('slow');
                        $frm.find('*[name=submit]').attr('disabled', '');
                        if (data.match('success') != null) $frm.slideUp('slow');
                    });
                });
        }
    e.preventDefault(); 
    }); 
});

});

===============>>#1 票数:0

您实际上并未使用ini_set函数做任何事情,您需要在其中放入有效的电子邮件和有效的数据:

ini_set('SMTP' , 'smtp.yoursite.com');
ini_set('smtp_port' , '25');
ini_set('username' , 'example@example.com');
ini_set('password' , 'password');
ini_set('sendmail_from' , 'example@example.com');

同样,在设置这些设置之前发送电子邮件是没有意义的。

实际上,您在设置之前和之后都要进行两次邮件发送。 定义设置,然后发送电子邮件。

顺便说说,

this
won't
get a new line

您必须在文本中添加\\ n,除非您使用可以处理此操作的包装器。

  ask by TheSabz translate from so

未解决问题?本站智能推荐:

2回复

PHP邮件不起作用

我的主机正在使用SquirrelMail,从Squirrel面板中我可以发送邮件,此外我也可以接收邮件。 进行了简单的代码测试: phpinfo() 但是用我的脚本我无法发送电子邮件。 接收2. wtf?
1回复

PHP发送邮件功能在其他网页上不起作用

这个问题已经在这里有了答案: PHP邮件功能未完成电子邮件的发送 27个答案 我的代码有问题吗? 我的一些发送电子邮件程序正在运行此代码,这不是我不为什么我已经配置了php.ini和send_mail.ini的原因。
1回复

PHP电子邮件不起作用

我有一个网站,您可以在其中查询或留下问题和评论并通过电子邮件发送,该代码可以完美运行,但不发送电子邮件。 这是我的代码: 我的其他作品都很好,它可以发送电子邮件,但是它在其他服务器中...
2回复

PHP邮件脚本不起作用

我下载了这个php邮件脚本: 我只是使用myemail@myemail.com代替代码中的电子邮件。 我正在系统首选项中使用内置的Web服务器来运行OSX 10.7.5。 我从http://xxx.home/~xxx/samplemail.php加载了samplemail.php
2回复

邮件脚本不起作用

我被困住了,无法弄明白为什么这不起作用。 它以前工作过。 出于安全原因,我已更改了以下电子邮件地址。
2回复

mailto:在PHP中发送电子邮件时,mail()函数中的链接不起作用

我正在使用PHP中的mail()函数发送电子邮件。 我正在使用以下代码 <a href="mailto:info@vivahsuchak.com">send email</a> 链接电子邮件的代码。 在使用PHP发送电子邮件之后,我已经签入邮件,并且当
1回复

当发件人地址为yahoo时,php邮件功能不发送电子邮件

不知道是否有人经历过这种情况,但是我有一个简单的表格可以发送电子邮件。 提交时,我有以下内容: 提交表单时,邮件功能返回true,但没有发送电子邮件,但是当我将FROM电子邮件更改为yahoo之外的其他邮件(例如something@gmail.com)时,电子邮件将通过。 有人
1回复

php mail()在Ubuntu 14.04上不起作用

这个问题已经在这里有了答案: PHP邮件功能未完成电子邮件的发送 27个答案 我正在用php开发Web应用程序,有时需要发送确认邮件。 已安装Sendmail,但是当我尝试运行此代码时,它加载页面的速度确实很慢,并且没有任何反应。 这是mail.log
1回复

为什么这个php mailer脚本要HTML和附件不起作用? [重复]

这个问题已经在这里有了答案 : 如何使用PHP发送带有附件的电子邮件? (4个答案) PHP mail()附件问题 (4个答案) 可能重复: 如何使用PHP发送带
1回复

DOCKERized PHP-Application中的Sendmail不起作用

尝试使用PHP发送电子邮件时 这是行不通的。 记录以下错误: -t -i在我的php.ini中配置为sendmail_path 。 为什么没找到? 我的Dockerfile基于FROM php:7.0-apache