PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Thursday, July 7, 2022

[FIXED] Why phpmailer is not sending mail to my domain mail server

 July 07, 2022     php, phpmailer     No comments   

Issue

I'm trying to send mail to my domain mail server: I used a try{} catch(){} to detect if there is any error, but surprisingly, there isn't any error.

<?php 
function Redirect_to($New_Location){
    header("Location:" . $New_Location);
    exit;
}
if(isset($_POST['Submitenq'])){
    require('phpmailer/PHPMailerAutoload.php');

    define ('GUSER','courses@cadcentreju.org');
    define ('GPWD','mymailpass');

    $recever1 = 'courses@cadcentreju.org';

    $enq_name = $_POST["enq_name"];
    $enq_email = $_POST["enq_email"];
    $enq_phone = $_POST["enq_phone"];
    $enq_message = $_POST["enq_message"];

    date_default_timezone_set("Asia/Kolkata");
    $CurrentTime = time();
    $DateTime = strftime("%B-%d-%Y %H:%M:%S",$CurrentTime);
    
    if(empty($enq_name) || empty($enq_email) || empty($enq_phone) || empty($enq_message)){
        Redirect_to("index.php?error=1");
    }else{
        $mail = new PHPMailer();
        try{
            $mail->IsSMTP();
            $mail->Mailer = "smtp";
                // $mail->SMTPDebug  = 2; 
            $mail->SMTPAuth   = TRUE;
            $mail->SMTPSecure = "ssl";
            $mail->Port       = 465;
            $mail->Host       = "mail.supremecluster.com";
            // $mail->CharSet   = "UTF-8";
            $mail->Username   = GUSER;
            $mail->Password   = GPWD;
            $mail->isHTML(true); 
                $mail->setFrom($enq_email,$enq_name);
                $mail->addAddress($recever1);
        
              $mail->Subject = 'Enquery Mail from - '. $enq_name;
              $mail->Body = '<table class="table" cellspacing="0">
              <thead>
                <tr>
                    <th colspan="2">Enquery Mail from - '. $enq_name .'</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                    <td colspan="2">'. '<p>Dear Sir / Madam, I have some enqueries as follows :</p></br>' .'</td>
                </tr>
                <tr>
                    <td>Email:</td>
                    <td>'. $enq_email .'</td>
                </tr>
                <tr>
                    <td>Phone No:</td>
                    <td>'. $enq_phone .'</td>
                </tr>
                <tr>
                    <td>City:</td>
                    <td>'. $sendercity .'</td>
                </tr>
                <tr>
                    <td>Message:</td>
                    <td>'. $enq_message .'</td>
                </tr>
                <tr>
                    <td>Date of Enquery:</td>
                    <td>'. $DateTime .'</td>
                </tr>
              </tbody>
              </table>';
              
              $mail->send();
              $success_msg =  "Your Message Sent Successfully: ";
        }catch(phpmailerException $e){
            echo $e->errorMessage();
        }catch(Exception $e){
            echo $e->getMessage();
        }

    }

}

?>
<?php include 'header.php'; ?>

<div style="height:50vh;margin-top: 268px; background:#ddd;" class="d-flex justify-content-center align-items-center">
    <?php 
        if(isset($success_msg)){
    ?>
    <div class="alert alert-success" role="alert">

        <?php
            echo $success_msg . $enq_name;
        ?>
    </div>
    <?php
        }else{
    ?>
    <div class="alert alert-danger" role="alert">
<?php
    echo "Something went wrong";

?>
</div>
    <?php
        }
    ?>
</div>

<?php include 'footer.php'; ?>

It's showing me that the email sent successfully, but I'm not getting any mail.

I've contacted my server helpline, they're saying that certain IPs were blocked. But now I've allowed these IPs from the CPanel. But still, the mails are not sent

I really need help on this :)

Thanks for taking the time to read.


Solution

PHPMailer doesn't throw exceptions by default – you have to ask for them by passing true to the constructor, as in $mail = new PHPMailer(true);. Without that you have to check the return values from methods like send() to find out if they worked.

Errors are stored in the ErrorInfo property – see any of the code examples provided with PHPMailer to see how to handle errors correctly.

You can also set $mail->SMTPDebug = 2; to see what your mail server is saying. Beyond that, read the PHPMailer troubleshooting guide.



Answered By - Synchro
Answer Checked By - Candace Johnson (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing