0

I am trying to use PHPMailer that I have downloaded from GitHub (I was mostly following tutorial on YT tutorial but I have also put some little changes of my own) but I am having problem because I don't really receive any mails. There are no errors shown or any other problems. Maybe someone will see something that I don't. If you need to know something more ask. HTML code probably is a bit messy as I am beginner.

<?php

session_start();

require_once 'libs/phpmailer/PHPMailerAutoload.php';

if(isset($_POST['name'], $_POST['email'], $_POST['text'])){
    $fields = [
        'name' => $_POST['name'],
        'email' => $_POST['email'],
        'text' => $_POST['text']
    ];

    foreach($fields as $field => $data){
        if(empty($data))
            $errors[$field] = $field . ' is required';
    }

    if(empty($errors['name']) && empty($errors['email']) && empty($errors['text'])){

        $m = new PHPMailer;

        $m->isSMTP();
        $m->SMTPAuth = true;

        $m->Host = 'smtp.@gmail.com';
        $m->Username = 'censored.com';
        $m->Password = 'censored';
        $m->SMTPsecure = 'ssl';
        $m->Port = 465;

        $m->isHTML();

        $m->Subject = 'Contact form submitted';
        $m->Body = 'From '.$fields['name'].' ('.$fields['email'].')<p>'.$fields['text'].'</p>';

        $m->FromName = 'Contact';

        $m->AddAddress('censored', 'James Smith');
    }
}

else
    $errors[] = "Something went wrong";


$_SESSION['errors'] = $errors;
$_SESSION['fields'] = $fields;

header("Location: index.php");

Here is my HTML code

?php

session_start();

$errors = isset($_SESSION['errors']) ? $_SESSION['errors'] : []; 
$fields = isset($_SESSION['fields']) ? $_SESSION['fields'] : []; 

?>

<!DOCTYPE HTML>
<html charset="utf-8">

<head>
 <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
 <title>GoForward</title>
 <meta name="description" content="Strona o czymś" />
 <meta name="keywords" content="strona, coś, tak" />
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
 <link rel="stylesheet" type="text/css" href="style.css">
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
 <script type="text/javascript" src="script.js"></script>
 <script src="jquery.scrollTo.min.js"></script>
</head>

<body>
 <div id="menu">
  <div class="icon" id="first"></div>
  <div class="icon" id="second"></div>
  <div class="icon" id="third"></div>
 </div>

 <div id="nav">
  <ul>
   <a id="o1" href="#">
    <li class="option">start</li>
   </a>
   <a id="o2" href="#">
    <li class="option">about</li>
   </a>
   <a id="o3" href="#">
    <li class="option">why us</li>
   </a>
   <a id="o4" href="#">
    <li class="option">contact</li>
   </a>
  </ul>
 </div>

 <div id="start">
  <div id="logo">
   GoForward
   <div id="slogan"><span>with us</span></div>
  </div>
  <div id="a2" class="arrow">&#x276F;</div>
 </div>

 <div id="about">
  <h1>our mission</h3>
   <div id="about_text">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur elementum risus in pretium vehicula. Vestibulum sagittis
    accumsan ante non egestas. Vivamus nec sapien tincidunt, efficitur lacus eget, dapibus tellus. Quisque dignissim commodo
    eleifend. Quisque risus lacus, dignissim eget turpis in, fringilla fermentum nibh. Donec efficitur ullamcorper ipsum,
    eget ultricies urna euismod at. Vivamus nec ante odio. Duis dignissim pharetra elit, id congue mauris fermentum in. Nullam
    eu commodo magna, at ultricies massa. Donec laoreet arcu eros, vitae vehicula nisi egestas ut. Donec porta at purus quis
    mollis. Praesent eu mi justo. Etiam suscipit elit ut.
   </div>
   <div id="a3" class="arrow">&#x276F;</div>
 </div>

 <div id="why">
  <h1>why us<span id="question">?</span></h1>
  <div id="slider">
   <img id="i3" class="slide" src="develop.jpg">
   <img id="i2" class="slide" src="strefa.jpg">
   <img id="i1" class="slide" src="place.jpg">
   <div id="img_hover">
    <div class="slider_arrow" id="left_one" onclick="plusIndex(-1)">&#x2192;</div>
    <p id="reason">Progress</p>
    <div class="slider_arrow" id="right_one" onclick="plusIndex(1)">&#x2192;</div>
   </div>
   <div id="img_text">
    <div class="img_textx">Duis dignissim pharetra elit, id congue mauris fermentum in. Nullam eu commodo magna, at ultricies massa. Donec laoreet
     arcu eros, vitae vehicula nisi egestas ut. Vivamus nec ante odio. Duis dignissim pharetra elit, id congue mauris fermentum
     in. Nullam eu commodo magna, at ultricies massa.</div>
    <div class="img_textx" style="display: none;">Duis dignissim pharetra elit, id congue mauris fermentum in. Nullam eu commodo magna, at ultricies massa. Donec laoreet
     arcu eros, vitae vehicula nisi egestas ut. Vivamus nec ante odio. Duis dignissim pharetra elit, id congue mauris fermentum
     in. Nullam eu commodo magna, at ultricies.</div>
    <div class="img_textx" style="display: none;">Duis dignissim pharetra elit, id congue mauris fermentum in. Nullam eu commodo magna, at ultricies massa. Donec laoreet
     arcu eros, vitae vehicula nisi egestas ut. Vivamus nec ante odio. Duis dignissim pharetra elit, id congue mauris fermentum
     in. Nullam eu commodo magna.</div>
   </div>
  </div>
  <div id="a4" class="arrow">&#x276F;</div>
 </div>

 <div id="contact">
  <h1>Contact us</h1>
  <form id="form" action="contact.php#form" method="post">
   <div id="name">
    <label><b>Name</b></label></br>
    <input name="name" type="name" 
    <?php if(isset($fields['name'])) echo "value= '".$fields['name']."'"?>
    <?php if(!empty($errors['name'])) echo "placeholder= '".$errors['name']."'"?>
    >
   </div>
   <div id="email">
    <label><b>E-mail</b></label></br>
    <input name="email" type="email" 
    <?php if(isset($fields['email'])) echo "value= '".$fields['email']."'"?>
    <?php if(!empty($errors['email'])) echo "placeholder= '".$errors['email']."'"?>
    >
   </div>
   <div id="text">
    <textarea name="text" <?php if(!empty($errors['text'])) echo "placeholder= '".$errors['text']."'"?>><?php if(isset($fields['text'])) echo $fields['text']?></textarea>
   </div>
   <input name="send" src="envelope.png" type="image">
  </form>
  <div id="up">&#x276F;</div>
 </div>
</body>

</html>

<?php

unset($_SESSION['errors']);
unset($_SESSION['fields']);

?>

// EDIT

Solved. I just had to change gmail settings to allow access for unauthorized applications.

  • use correct authentication add correct email address in username and password. – Narayan Sep 12 '17 at 12:39
  • I use correct email address and password, just don't want to show it for everyone –  Sep 12 '17 at 12:40
  • See [PHPMailer example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps), it shows what you need to configure to send e-mail via Gmail SMTP. – Jirka Hrazdil Sep 12 '17 at 12:42
  • You never send it, you need `$m->send()` – Tolios Sep 12 '17 at 13:03
  • You can also just check `if (empty($errors))` instead of checking each index individually – Tolios Sep 12 '17 at 13:05
  • 1
    @Tolios I am having this error now Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Gonna look for solution. Thanks –  Sep 12 '17 at 13:35

0 Answers0