I am sending emails to my subscribers using phpmailer. I have an HTML file which contains text and images. Emails are sending successfully but the weird thing is my images are not showing. My images are located at root directory of my HTML file. Is there a way to send email through HTML file with images located at my local directory? I put my images in my HTML file like
<img src="images/log.png">
I don't want to give my image url in my HTML file like
<img src="www.mydomain.com/images/log.png">
here is my code:
$db_host = "localhost";
$db_username = "root";
$db_pass = "";
$link= mysqli_connect("$db_host","$db_username","$db_pass", "db") or die ("could not connect to mysql");
//if($link){echo "connect";}
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
//Load Composer's autoloader
require 'vendor/autoload.php';
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
$query = "select customer_email from subscribers";
$result = mysqli_query($link, $query) or die("No customer in the table");;
while($values = mysqli_fetch_array($result)){
$toemail = $values['customer_email'];
//Server settings
$mail->SMTPDebug = 1; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = '(myhost)'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '(my email)'; // SMTP username
$mail->Password = '(my password)'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Recipients
$mail->setFrom('haris.khan@premier.com.pk', 'Premier');
$mail->addAddress(''.$toemail.'', ''.$name.''); // Add a recipient
$mail->addReplyTo('haris.khan@premier.com.pk', 'Information');
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
ob_start();
include "file.html";
$contents = ob_get_clean();
$mail->msgHTML($contents);
$mail->send();
echo 'Message has been sent';
}
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
here is my html file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<img src="images/logo.png">
<h1> Hello World ..!!! </h1>
<p> This is the <b> auto generated email from HTML Fie </b> for testing purpose. </p>
</body>
</html>
any help would be highly appreciable.