PHP SMTP Mail с IP-адресом - PullRequest
0 голосов
/ 28 мая 2018

Вот мой контактный почтовый PHP-код:

<?php
      require "class.phpmailer.php";
      $mail=new PHPMailer();
      $mail->IsSMTP();
      $mail->SMTPDebug = 1;
      $mail->SMTPAuth = true;
      $mail->Host = "domain.mail.com";
      $mail->Port = 000; 
      $mail->Username = 'username@gmail.com';
      $mail->Password = 'pass';
      $mail->SetFrom($mail->Username, $_POST['name']);
      $mail->AddAddress('username@gmail.com', 'username');
      $mail->CharSet = 'UTF-8';
      $mail->Subject = $_POST["topic"];
      $mail->MsgHTML('Name: '.$_POST["name"].'<br/>
                      Subject: '.$_POST["topic"].'<br/>
                      E-Mail: '.$_POST["email"].'<br/>
                      Message: '.$_POST["message"].'<br/>');

      if($mail->Send()) {
          echo "<script>alert('Message successfully sent.');</script>";

          header ("Refresh:0; url=index.html");
      }else { 
          echo  $mail->ErrorInfo;
      }
  }}
?>

Мой MsgHTML включает в себя имя, тему, электронную почту и сообщение, и я хочу видеть IP-адрес пользователя.Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

вы можете использовать эту функцию для получения IP-адреса клиента

function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_X_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if(isset($_SERVER['REMOTE_ADDR']))
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
0 голосов
/ 28 мая 2018

Это нормально, но я хочу видеть IP-адрес во входящей почте из контактной формы.

В моем коде MsgHTML есть имя, тема, почта и сообщение, как добавить информацию об IP-адресе?

0 голосов
/ 28 мая 2018

вы можете получить, используя следующую функцию.

 function GetIpAddress()
 {
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check if its shared
    {
       $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
   elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //if ip is from proxxyfrom proxy
     {
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
     }
    else
    {
        $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
  }
...