PHPmailer设置从电子邮件与到电子邮件相同


PHPmailer setting From email the same as to email

我正在使用PHP mailer来构建联系人表单,请记住,我是PHP的新手。我的表单发送得很好,但是,在我收到的电子邮件中,发件人地址与用户输入到联系人表单中的电子邮件不匹配,而是显示与收件人相同的电子邮件。我100%确信我在实时联系人表格中输入了正确的电子邮件。我已将我的敏感信息替换为$$$$$$$

   <?php 

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $name = trim($_POST["name"]);
        $email = trim($_POST["email"]);
        $message = trim($_POST["message"]);
        if ($name == "" OR $email == "" OR $message == "") {
            $error_message = "You must specify a value for name, email address, and message.";
        }
        if (!isset($error_message)) {
            foreach( $_POST as $value ){
                if( stripos($value,'Content-Type:') !== FALSE ){
                    $error_message = "There was a problem with the information you entered.";
                }
            }
        }
        if (!isset($error_message) && $_POST["address"] != "") {
            $error_message = "Your form submission has an error.";
        }
        require_once("../inc/phpmailer/PHPMailerAutoload.php");
        $mail = new PHPMailer();
        if (!isset($error_message) && !$mail->ValidateAddress($email)){
            $error_message = "You must specify a valid email address.";
        }
            $mail->IsSMTP();
            $mail->SMTPAuth = true;
            $mail->Host = "smtp.gmail.com";
            $mail->Port = 587;
            $mail->Username = "$$$$$$$$$$$$$";
            $mail->Password = "$$$$$$$$$$$$$";
            $mail->SMTPSecure = 'tls';
        if (!isset($error_message)) {
            $mail->From =  $email;
            $mail->FromName = $name;
            $mail->addAddress('$$$$$$$$$$$$$$', '$$$$$$$$$$l');
            $mail->isHTML(true);
            $mail->Subject = '$$$$$$$$$$| ' . $name;
            $mail->Body = $message;
            $mail->AltBody = $message;
            if($mail->Send()) {
                header("Location: ../contact/?status=thanks");
                exit;
            } else {
              $error_message = "There was a problem sending the email: " . $mail->ErrorInfo;
            }
        }
    }
    require_once("../inc/header.php"); ?>
        <div class="section page">
            <div class="wrapper">
                <div class="row">
                    <div class="col-md-4 col-md-offset-4">
                        <div class="center-block">
                            <h1>Contact</h1>
                        </div>
                        <?php if (isset($_GET["status"]) AND $_GET["status"] == "thanks") { ?>
                            <div class="alert alert-success">
                            <p>Thanks for the email! I&rsquo;ll be in touch shortly!</p>
                            </div>
                        <?php } else { ?>
                            <?php
                                if (!isset($error_message)) {
                                    echo '<p>I&rsquo;d love to hear from you! Complete the form to send me an email.</p>';
                                } else {
                                    ?><div class="alert alert-warning"><?php
                                    echo '<p>' . $error_message . '</p>';
                                    ?></div><?php
                                }
                            ?>
                    </div>
                </div>
                    <form class="form-horizontal" method="post" role="form">
                          <div class="form-group">
                            <label for="name" class="col-sm-4 control-label">Name</label>
                            <div class="col-sm-4">
                              <input type="text" class="form-control" id="name" name="name" placeholder="Name" value="<?php if (isset($name)) { echo htmlspecialchars($name); } ?>">
                            </div>
                          </div>
                          <div class="form-group">
                            <label for="email" class="col-sm-4 control-label">Email</label>
                            <div class="col-sm-4">
                              <input type="email" class="form-control" id="email" name="email" placeholder="Email" value="<?php if(isset($email)) { echo htmlspecialchars($email); } ?>">
                            </div>
                          </div>
                          <div class="form-group">
                            <label for="message" class="col-sm-4 control-label">Message</label>
                            <div class="col-sm-4">
                            <textarea class="form-control" id="message" name="message" rows="3"><?php if (isset($message)) { echo htmlspecialchars($message); } ?></textarea>
                            </div>
                          </div>
                          <div class="form-group" style="display:none;">
                            <label for="address" class="col-sm-4 control-label">Address</label>
                            <div class="col-sm-4">
                              <input type="text" class="form-control" id="address" name="address" placeholder="Name">
                              <p>Humans: please leave this field blank.</p>
                            </div>
                          </div>
                          <div class="form-group">
                            <div class="col-sm-offset-4 col-sm-">
                              <button type="submit" class="btn btn-primary">Submit</button>
                            </div>
                          </div>
                    </form>

                <?php } ?>
            </div>
        </div>
    <?php require_once("../inc/footer.php"); ?>

更改此

$mail->From =  $email;
$mail->FromName = $name;
$mail->addAddress('$$$$$$$$$$$$$$', '$$$$$$$$$$l');

$mail->setFrom($email, $name);
$mail->addAddress($EMAIL THAT ITS GOING TO, $NAME THATS ITS GOING TO);

另请参阅此链接,从其他地址发送GMAIL

https://support.google.com/mail/answer/22370?hl=en

您似乎忘记调用Sender变量:

public $Sender = '';
/**
 * The Return-Path of the message.
 * If empty, it will be set to either From or Sender.
 * @type string
 */

https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php

谢谢你们的回复。我做了一些外部研究,结果发现这是gmail本身的问题。他们不允许你使用与你的gmail帐户不同的发件人地址使用他们的smtp服务。我想是因为垃圾邮件。