I am attempting to use PhpMailer to send an email of an MP3 to a user. When I try to send an email to the user I get a message saying: SMTP ERROR: Failed to connect to server: No route to host (65) . I have read this might be the result of gmail not agreeing with a different server but I don't see any remedy. I switched from tls to ssl and that didn't help. I also tried 3 different physical locations and the problem still persists. This worked fine initially and maybe something switched off but I don't know what. UPDATE I am having this problem only on my hosted site . localhost is working now. Is there some necessary configuration on my shared server I am missing? Any ideas would be greatly appreciated.
<?php
session_start();
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
date_default_timezone_set('America/New_York');
require_once 'vendor/autoload.php';
$m = new PHPMailer(true);
try{
$m->SMTPDebug = 2;
$m->isSMTP();
$m->Host = 'smtp.gmail.com';
$m->SMTPAuth = true;
$m->Username = 'munsonatl@gmail.com';
$m->Password = 'somethingsecret';
$m->SMTPSecure = 'ssl';
$m->Port = 465;
$m->setFrom('munsonatl@gmail.com', 'Mailer');
$m->addAddress('munsonatl@gmail.com', 'Matt Macy');
$m->addReplyto('reply@mattmacy.com', 'replyAddress');
require 'connect.php';
$itemNum = $_SESSION['itemNum'];
$query2 = "SELECT* FROM MP3s_For_Sale WHERE itemNum = :itemNum";
$LastProduct = $db->prepare($query2);
$LastProduct->bindvalue(':itemNum', $itemNum);
$LastProduct->execute();
$rows = $LastProduct->fetch();
$filename = $rows['path'];
$filesize = $rows['filesize'];
$string = $rows['wholeMP3'];
$encoding = 'base64';
$type = $rows['type'];
$m->AddStringAttachment($string,$filename,$encoding,$type);
$m->isHTML(true);
$m->Subject = "Here is an Email";
$m->Body = "<p>This is the body of the email</p><br><strong>Test for
HTML formatting</strong><br>";
$m->AltBody = "This is the body of an email";
$m->send();
echo "message has been sent";
unset($_SESSION['itemNum']);
} catch (Exception $e){
echo "message could not be sent", $m->ErrorInfo;
}
?>