Sending email through local smtp server

2.2k views Asked by At

Code:

<?php
require 'PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->CharSet="utf-8";
$mail->isSMTP();                                   // Set mailer to use SMTP
$mail->Host = '172.17.224.12';                    // Specify main and backup SMTP servers
$mail->SMTPAuth = false;                            // Enable SMTP authentication
//$mail->Username = '***';          // SMTP username
//$mail->Password = '***'; // SMTP password
$mail->SMTPSecure = 'TLS';                         // Enable TLS encryption, `ssl` also accepted
$mail->Port = 25;                                 // TCP port to connect to

$mail->setFrom('[email protected]', 'Company.com');
$mail->addReplyTo('[email protected]');
$mail->addAddress('[email protected]');   // Add a recipient

$mail->isHTML(true);  // Set email format to HTML

$bodyContent = '<h1>How to Send Email using PHP in Localhost by CodexWorld</h1>';
$bodyContent .= '<p>This is the HTML email sent from localhost using PHP script by <b>CodexWorld</b></p>';

$mail->SMTPDebug = 2;
$mail->Subject = 'Email from Localhost by CodexWorld';
$mail->Body    = $bodyContent;

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

} else {
    echo 'Message has been sent';
}
?>

When I run this code, it says message has been sent. However, when I look at my email, there's a notification saying that the email sent through my code was bounced back.

What could be the possible problem? was it the configuration in my code or was it the server?

screencap of the bounce back email

1

There are 1 answers

0
HDMI On BEST ANSWER

For those who encounter the same problem, what resolved to this problem is smozgur's answer.

I think the server you are trying to send email through php - your local server - is not authorized to send email and considered as SPAM (like someone else is trying to send email by using your credentials). When I need to make my scripts sends email from the server, then I add my server IP as the SPF record in the DNS records. That way, my email server knows that IP is sending email in my knowledge and allows. In your case, I think you can likely add your IP to temporarily solve the problem. But you need to do that for the production server IP later as well. If this is the case of course..

I contacted supervisor and told him the status of the email function, which is emails are being sent, but the mail server returns the emails to the sender. Also, the possible cause of the problem, which is the local server is not authorized to send email and considered as SPAM. Lastly, the possible solution, which is add the server IP as the SPF record in DNS record.