首页 文章

联系表单不向Gmail发送邮件

提问于
浏览
0

我需要帮助 . 我的联系表单没有向我的Gmail发送消息 . 我也检查了我的垃圾邮件,没有任何结果 . 不确定这是否与我的代码有关 . 提前致谢 . 我已经意识到这条消息正在进入我的godaddy cpanel . 主题是

邮件失败 - 收件人地址格式错误

消息体说

您发送的邮件包含错误构造的收件人地址:from:缺少或格式错误的本地部分(期望word或“<”)邮件尚未传递给任何收件人 .

还请忽略 $ip 字段,表示我的代码部分未添加 .

<?php
$emailErr = "";
$commentErr = "";
if(isset($_POST['submit'])){
    //declares variable
    $email = $_POST['email'];
    $comment = $_POST['comment'];
    if(empty($_POST['email'])){
        $emailErr = "Please enter your email";
    }
    if(empty($_POST['comment'])){
        $commentErr = "comment field can't be empty";
    }
}
if(!empty($_POST['email']) && !empty($_POST['comment'])){
    // Send the email
    $to = "myname@gmail.com";
    $email = "From: $email";
    $comment = "Message: $comment";
    $message = "$message" . "\n\n\n==-   Sent from the website with IP Address: " . $ip . "   -==";
    $headers = "From: $email,";
    $send_contact = mail($to,$email,$comment,$message,$headers);
    header("Location: index.php");
}
?>

2 回答

  • 0

    这应该工作 .

    <?php
        $emailErr = "";
        $commentErr = "";
        if(isset($_POST['submit'])){
    
            //declares variable
            $email = $_POST['email'];
            $comment = $_POST['comment'];
    
            if(empty($_POST['email'])){
               $emailErr = "Please enter your email";
            }
            if(empty($_POST['comment'])){
               $commentErr = "comment field can't be empty";
            }
         }
    
        if(!empty($_POST['email']) && !empty($_POST['comment'])){
            // Send the email
            $to = "myname@gmail.com";
            $title = "Message from my website";
    
            $message = "Comment: {$comment}" . "\r\n";
            $message .= "Sent from the website with IP Address: {$ip}" . "\r\n";
    
            $headers = "From: " . strip_tags($email) . "\r\n";
            $headers .= "Reply-To: ". strip_tags($email) . "\r\n";
            $headers .= "MIME-Version: 1.0\r\n";
            $headers .= "Content-type:text/plain;charset=UTF-8" . "\r\n";
            mail($to,$title,$message,$headers);
    
            header("Location: index.php");
       }
    ?>
    

    我建议你学习如何在这里使用邮件功能http://php.net/manual/en/function.mail.php

  • 0

    Heyy早安,

    如果您在离线模式下工作,可能需要phpmailer .

    首先你需要从这里下载phpmailer https://github.com/PHPMailer/PHPMailer/archive/master.zip

    然后粘贴到您的文件夹中 . 如果我的编码不能清除您,您可以查看

    https://github.com/PHPMailer/PHPMailer

    <?php
    require 'PHPMailerAutoload.php'; // Your Path
    
    $mail = new PHPMailer;
    
    //$mail->SMTPDebug = 3;                               // Enable verbose debug output
    
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'user@example.com';                 // Your mail 
    $mail->Password = 'secret';                           // Your mail password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;     
    
    $mail->From = 'from@example.com';
    $mail->FromName = 'Mailer';
    $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
    $mail->addAddress('ellen@example.com');               // Name is optional
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');
    
    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
    $mail->isHTML(true);                                  // Set email format to HTML
    
    
    
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    
    //Check Condition
    if(!$mail->send()) {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
    }
    

    第二种方式 .

    如果您在在线模式下进行测试(拥有自己的域和托管),则可以随意复制和粘贴 .

    不需要phpmailer .

    <?php
    
    $error = [];
    
    $receipientName="Fido";
    $receipientEmail ="receipientmail.gmail.com";
    $ccEmail ="";
    
    //declares variable
    if(isset($_POST['name'])) $name = $_POST['name'];
    else $name = "";
    
    if(isset($_POST['email'])) $email = $_POST['email'];
    else $email = "";
    
    
    
    function send_mail($myname, $myemail, $contactname, $contactemail, $subject, $message) {
    
    
        $headers = "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\n";
        $headers .= "X-Priority: 1\n";
        $headers .= "X-MSMail-Priority: High\n";
        $headers .= "X-Mailer: php\n";
        $headers .= "From: \"".$myname."\" <".$myemail.">\r\n";
        return(mail("\"".$contactname."\" <".$contactemail.">", $subject, $message, $headers));
    }
    
    if(isset($Submit) && $Submit=="Go") {
    
         $emailContent ='';
    
    
        $sent=send_mail($name, "yourmailname.gmail.com", "Fido", $receipientEmail, "Testing", $emailContent);
        if($sent) {
          echo $emailContent;
    
            header('Location: contact.php');
        }else{
            echo "Failed";
            exit;
        }
    
    }
    
    
    ?>
    

相关问题