Contact form - improvements

Permalink
As a newcomer to Concrete5 using 5.7.5.6, I am generally impressed and pleased with the ease of use and feature-rich system.

The glaring exception is the block form submission and standard out-of-box contact form

Unless I am misunderstanding it, it's a disgrace in terms of system design and lack of customisation capability.

It's a total nonsense that the FROM address is the one registered for the system. Come on, the FROM address should be the email address of the person submitting the form.

The TO address should be the system address or preferably an address specified as an option for the block (e.g. support@domain.com). This would allow it to be fed into a helpdesk system like zendesk, freshdesk or a.n.other

There seem to be precious few add-ons for 5.7 and none with good reviews

Concrete5 doesn't make it easy to modify this behaviour, and appears to want to obstruct.

I don't want to be putting in custom HTML forms or using external services. But do I have any option?

Come on, Concrete5. This is an extremely basic and totally essential function for a modern website.

I am hoping that there are simple answers to contradict my assessment.

timconsidine
 
Gondwana replied on at Permalink Reply
Gondwana
Funny you should mention this; I'm working on a new Contact Form block right now! But you wouldn't like it; I'm aiming for minimalism.

My default installation of concrete5 with Elemental doesn't have a specific 'Contact Form' block. The generic 'Form' block is used. Do you have something different?

With a bit of code, it's easy to get the 'from' email address to appear to be that of the person who filled in the form (in fact, it's easier than getting the address from which the email will actually be sent). However, I think this would fall into the category of header spoofing, which can lead to hard-to-diagnose issues if there are email delivery problems. Methinks a safer solution is to put the user's email address in the 'replyto' header, which allows convenient reply without falsifying anything. I think the Form block does this.

Using the Form block settings, you can specify the 'to' address to be whatever you like. You can even specify multiple addresses.
timconsidine replied on at Permalink Reply
timconsidine
Thanks for your reply.

Minimal is totally fine - I am not looking for fancy - I just want to be able to configure it

Reply-to might for a standard email client. I use Freshdesk as a helpdesk solution, and it takes the FROM address as the person who opened the ticket. My previous CMS made this easy to configure. And it seems - to me anyway - entirely logical

I think having a different FROM and REPLY-TO is more likely to trigger spam alerts. And header-spoofing will likely trigger problems when sending to gmail, hotmail etc. But sending to helpdesk service hasn't presented problems previously.

I am using FRAMEWORK theme with standard contact page

I looked at the form controller code and it seems maybe possible to hack this to use the user's email address. I will have to test. But I don't like hacking things. It should be configurable in the interface. IMHO.
timconsidine replied on at Permalink Reply
timconsidine
Just wondering ...

If I do not tick 'notify me on submission', what happens to the submission ?

I can't see any area or link in Dashboard or settings where to view submissions
timconsidine replied on at Permalink Reply
timconsidine
Silly me !

Found it under Reports
timconsidine replied on at Permalink Reply
timconsidine
Have initially frigged the default using this config

1.) Ensure that contact form submitter email address has 'Reply to this' address ticked

2.) Hack controller.php located in /concrete/blocks/form :
- find line : $mh->from($formFormEmailAddress);
- add // to start to comment out : //$mh->from($formFormEmailAddress);
- insert new line below it : $mh->from($replyToEmailAddress);

This allows email to be received in email client (might trigger spam because of header spoofing but set up rule to allow through)

Not making it through to my ticket system Freshdesk, probably because of header spoofing. Looking to resolve this. But at least it gets an eamil through which I can reply to rather than copying and pasting submitter's address from body into the To field when replying

Not a great solution, and not proud of it. But it works. I understand it might get over-written on concrete5 update, but trivial to re-set up

Can it be copied and placed in another directory so it survives an update ? Don't fully understand this point, and not yet located in online documentation
timconsidine replied on at Permalink Reply
timconsidine
Although this seems a better modification than my hack :

https://www.concrete5.org/community/forums/customizing_c5/contact-fo...
Gondwana replied on at Permalink Reply
Gondwana
Well done on cracking this!

"Can it be copied and placed in another directory so it survives an update?" This is the right question—and the answer is yes: seehttp://documentation.concrete5.org/developers/working-with-blocks/w... .

I'm surprised that you need to paste addresses around when replying to emails with reply-to specified correctly. When I do so, the reply is sent to the original reply-to address rather than the from address, but maybe it depends on the email client.
timconsidine replied on at Permalink Reply
timconsidine
Thanks for the link

It can probably be said to be a small failing of my helpdesk ticketing system, in that it takes from, but seems to ignore reply-to. Am investigating if that can be overcome, so I can be more standard