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 '15 at 8:57
  • Thank you for responding. After submitting, the page reloads and no email is being sent.
    – SteveO
    Sep 9 '15 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 '15 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 '15 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 '15 at 17:40

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 '15 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 '16 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 '15 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 '15 at 18:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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