Как сделать так, чтобы адрес <img>sr c правильно загружался в gmail? - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь собрать данные, если электронное письмо открыто. Я активно пытался решить эту проблему самостоятельно, но на данный момент я застрял и ищу любую помощь, которая предлагается.

У меня два локальных PHP файла на моем сервере Apache2. Тот, который отправляет электронное письмо на учетную запись Gmail от себя:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require '/home/kali/PHPMailer-master/src/Exception.php';
require '/home/kali/PHPMailer-master/src/PHPMailer.php';
require '/home/kali/PHPMailer-master/src/SMTP.php';

$base_url = 'http://192.168.1.3/isproject/';

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";

$mail->SMTPDebug = 1;  
$mail->SMTPAuth = TRUE;
$mail->Port = 587;                               // Enable SMTP authentication
$mail->Username = 'XXXXXXXXX';                            // SMTP username
$mail->Password = 'xxxxxxxx';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted


$mail->From = 'blablabla@gmail.com';
$mail->FromName = 'PhisherTester';
$mail->addAddress('blablabla@gmail.com', 'Phish Phisher');

$track_code = md5(rand());

$message_body .= '<img src="'.$base_url.'openedphishing.php?code='.$track_code.'" 
width="100" height="100" alt="Logo" title="Logo" style="display:block"/>';

$mail->IsHTML(true);


if(!$mail->send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

echo 'Message has been sent';

?>

Приведенный выше код работает как брелок, он входит в учетную запись gmail и отправляет себе электронное письмо.

Второй PHP файл, который предназначен для передачи данных в базу данных:

<?php
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
        $ip = $_SERVER["HTTP_CLIENT_IP"];
}else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}else{
        $ip = $_SERVER["REMOTE_ADDR"];
}

if(isset($_GET["code"]))
{
        $db = new Mysqli("localhost", "test", "123", "ISProjectDB");
        $query = "INSERT INTO Phishing SET ip_addr='$ip', check_opened='Yes'";
        $db->query($query);
}

?>

Электронная почта получена учетной записью Gmail, и она обновляет базу данных, если я вхожу в URL для PHP файла вручную , но он НЕ отправляет данные при открытии файла через gmail!

это из-за настроек безопасности Googles или из-за того, что Google пытается загрузить его, прежде чем показать, что он недоступен, или просто потому, что я отправляю его себе?

Любая помощь с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...