1

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('itslt@example.com', 'Company.com');
$mail->addReplyTo('itslt@example.com');
$mail->addAddress('dichitslt@example.com');   // 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

HDMI
  • 21
  • 4
  • 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... – smozgur Jan 05 '17 at 07:55
  • More info about SPF record: https://mxtoolbox.com/problem/spf/txt-record – smozgur Jan 05 '17 at 07:56
  • SMTPSecure should be `tls`, not `TLS`, though you probably don't need it at all for an internal server. There's no point in adding a reply-to that's the same as your from address. If your mail server accepts your message (i.e. your code is OK), PHPMailer's involvement ends there. Anything that happens after that is mail server and domain configuration territory. – Synchro Jan 05 '17 at 08:08
  • Look at the headers in your bounce message - it may give you more info on why it was rejected. – Synchro Jan 05 '17 at 08:09

1 Answers1

0

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.

HDMI
  • 21
  • 4