Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialZeljko Porobija
11,491 PointsThere was a problem sending the email: Could not instantiate mail function.
That's the error message I get when I send the mail - whether with valid or invalid mail form. I suppose that it has to do with the inability of my localhost to send mails. Or is there any other reason behind that?
5 Answers
Matthew Bilz
15,829 PointsHi there,
You can employ it on any .php page that you'd like. If you're using variables, then you'd just have to define them before the email body object and that's really the only requirement. Whenever the .php page is loaded, the email code executes with whatever values or body you're assigning - you don't even need variables, just the execute code.
Matthew Bilz
15,829 PointsHi there,
I had this issue with XAMPP locally; try this out in your email code on the line right after $mail->isSMTP();
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
Zeljko Porobija
11,491 PointsHi Matthew, the trouble is that I nowhere find the line $mail->isSMTP(). What is the file in question? Thnx in advance for your help!
Matthew Bilz
15,829 PointsHere's what my localhost has to send an email and I'm using XAMPP:
//Send the email
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->Host = "your host"; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = "your email address"; // SMTP username
$mail->Password = "your password"; // SMTP password
$mail->SMTPSecure = "tls"; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->From = "your email address";
$mail->FromName = "you";
$mail->addAddress("recipient email"); // Add a recipient
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'subject!';
$mail->Body = "body goes here";
$mail->AltBody = 'body goes here.';
if(!$mail->send()) {
echo 'There was an error sending the contact form email. <br>';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
}
}
Zeljko Porobija
11,491 PointsWell, what I'm trying to comprehend is to which file of the project you particularly refer? I suppose that the code you suggest can be employed somewhere within index.php (in folder contact). Or I need to add another file?