I'm using the Pixel & Tonic Contact Form plugin. I have created a template and I'm using the example code from the README file.

No email is being sent. Upon submit it redirects to the form page. I have successfully sent myself an email test using Php Mail.

Do I need a template at: <input type="hidden" name="action" value="contactForm/sendMessage">

This is my code:

{% macro errorList(errors) %}
        {% if errors %}
            <ul class="errors">
                {% for error in errors %}
                    <li>{{ error }}</li>
                {% endfor %}
        {% endif %}
    {% endmacro %}

    {% from _self import errorList %}

    <form method="post" action="" accept-charset="UTF-8">
        {{ getCsrfInput() }}
        <input type="hidden" name="action" value="contactForm/sendMessage">
        <input type="hidden" name="redirect" value="/thank-you-for-contacting-us">

        <h3><label for="fromName" style="display:block">Your Name</label></h3>
        <input id="fromName" type="text" name="fromName" value="{% if message is defined %}{{ message.fromName }}{% endif %}">
        {{ message is defined and message ? errorList(message.getErrors('fromName')) }}

        <h3><label for="fromEmail" style="display:block">Your Email</label></h3>
        <input id="fromEmail" type="text" name="fromEmail" value="{% if message is defined %}{{ message.fromEmail }}{% endif %}">
        {{ message is defined and message ? errorList(message.getErrors('fromEmail')) }}

        <h3><label for="subject" style="display:block">Subject</label></h3>
        <input id="subject" type="text" name="subject" value="{% if message is defined %}{{ message.subject }}{% endif %}">
        {{ message is defined and message ? errorList(message.getErrors('subject')) }}

        <h3><label for="message" style="display:block">Message</label></h3>
        <textarea rows="10" cols="40" id="message" name="message">{% if message is defined %}{{ message.message }}{% endif %}</textarea>
        {{ message is defined and message ? errorList(message.getErrors('message')) }}

        <input id="kneesbees" class="kneesbees" name="kneesbees" type="text">

<input type="submit" value="Send">
  • You don't need a template at contactForm/sendMessage - that is the plugin action. So after submitting you don't get sent to "thank-you-for-contacting-us" ? Sep 9, 2015 at 8:57
  • Thank you for responding. After submitting, the page reloads and no email is being sent.
    – SteveO
    Sep 9, 2015 at 13:44
  • It seems like the plugin is hitting a snag somewhere. Is this site in devMode? If so, you should see any problems and errors showing up in the logs. Sep 9, 2015 at 15:47
  • The site is in devMode. Not really sure what to look for. I don't see anything in the log that is standing out. Another oddity. If I fill out my honeypot field, it sends me to the thank you page but still does not send the email. Could there be a server setting that is cause my issue?
    – SteveO
    Sep 9, 2015 at 16:18
  • I have moved over the the Mandrill plugin and have it working there. I would love to see someone post a solution if they find it. Thank you.
    – SteveO
    Sep 9, 2015 at 17:40

2 Answers 2


I figured out what was happening. There was a conflict with a previously installed plugin, Sprout Invisible Captcha.

  • 1
    Might be worth contacting Barrel Strength Design to let them know about the conflict... that sounds like a bug to me.
    – Lindsey D
    Sep 12, 2015 at 4:31
  • I've just hit this same issue on a live site. Disabling Sprout Invisible Captcha fixed it. On version 2.6.2949 of Craft and 0.8.3 of Sprout Invisible Captcha. Nov 2, 2016 at 15:05

phpmail is notoriously unreliable at delivering emails. It might work fine for you locally when sending a test email to yourself, but getting an email reliably delivered on the "real" internet is much more difficult.

Most likely you were just running into that unreliability and swapping to a transactional email provider like Mandrill solved the issue.

  • I think this is a problem with the Contact From plugin. I have tried it on three different servers using a variety of email protocols, and I still get the same result. The Mandrill plugin seems to work fine, but it is limited in functionality.
    – SteveO
    Sep 9, 2015 at 20:10
  • I also noticed that error messages are not working on this plugin either. Could I be missing something simple?
    – SteveO
    Sep 11, 2015 at 18:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.