Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Simple Contact Form


Reply


7 Posts   494 Views

Avatar
Bagzli

Community Member, 37 Posts

20 May 2014 at 6:20am

Edited: 20/05/2014 6:21am

Hi Guys,

I've been trying to send an e-mail out and followed the official guide however I am not receiving any e-mails. I cannot figure out what is wrong, here is my code:

<?php
class ContactPage extends Page {
}
class ContactPage_Controller extends Page_Controller {
private static $allowed_actions = array('$Form');
public function Form() {
$fields = new FieldList(
new TextField('Name'),
new EmailField('Email'),
new TextareaField('Message')
);
$actions = new FieldList(
new FormAction('submit', 'Submit')
);
$validator = new RequiredFields('Name', 'Message');
return new Form($this, '$Form', $fields, $actions, $validator);
}
public function submit($data, $form) {
$email = new Email();

$email->setTo('myemail@mymail.com');
$email->setFrom($data['Email']);
$email->setSubject("Contact Message from {$data["Name"]}");

$messageBody = "
<p><strong>Name:</strong> {$data['Name']}</p>
<p><strong>Message:</strong> {$data['Message']}</p>
";
$email->setBody($messageBody);
$email->send();
return array(
'Content' => '<p>Thank you for your feedback.</p>',
'Form' => ''
);
}
}

My ContactForm.ss looks like this

$Form

my Page.ss looks like this

$Content
$Form

Note: I changed the e-mail displayed in the code above, but in my actual code I use my real e-mail.

Avatar
bartvanirsel

Community Member, 94 Posts

21 May 2014 at 7:02pm

Does the from email address exist? This was a problem on some of my hosting envoronments.

Avatar
Bagzli

Community Member, 37 Posts

22 May 2014 at 9:30am

yes it does, I've used 2 of my e-mails that I know exist.

Avatar
bartvanirsel

Community Member, 94 Posts

22 May 2014 at 6:58pm

Hi,

Does using a normal php mail function work?
And did you try it on antoher webserver?

Cheers,

Bart

Avatar
Bagzli

Community Member, 37 Posts

23 May 2014 at 12:50pm

I was doing it from a local server and never tried normal one, not sure how the normal one is done.

Avatar
kevinstripe

Community Member, 10 Posts

23 May 2014 at 6:45pm

first you should try using simple PHP mail function, to check whether your SMTP server is working fine....

Avatar
bartvanirsel

Community Member, 94 Posts

2 June 2014 at 7:50pm

http://php.net/manual/en/function.mail.php