Git Product home page Git Product logo

p01contact's Introduction

p01contact

Create contact forms by writing simple tags.

Installation

Download the files.

For GetSimple CMS, place the p01-contact directory and the file p01-contact_gs.php in plugins/.

For Pico CMS, place the p01-contact directory in plugins/ and rename-it PicoContact.

Compatibility : PHP 5.4+

Usage as a plugin

Just write tags in your pages.

This is a default contact form :

(% contact %)

Simple.

Follow the syntax to create custom forms.

(% contact en :
    subject => A locked subject,
    radio "I'd like to contact you" = a little | a lot |: passionately,
    select "Department" (the floor you look for) = Silly walks :| Strange things,
    email!,
    message =< Bla bla placeholder,
    checkbox! "I'm in control",
    askcopy
%)

Details about usage as a plugin can be found in the wiki :

Usage as a PHP script

The simplest method is to include the script, create a new instance and parse strings containing tags using the syntax.

include 'p01-contact/P01contact.php';

$p01contact = new P01contact();

$content = 'This is a default contact form : (% contact %)'
$content = $p01contact->parse($content);

p01contact's People

Contributors

alexeevp avatar capaci avatar jeckyl avatar joergmschulz avatar nliautaud avatar princezna avatar scottaglia avatar sonst-was avatar wdburgdorf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

p01contact's Issues

Escape commas

Hi,
first of all thanks for your work.
Inside the form i have a textarea "Notes" with a prefilled-value containing a comma. How could i escape the comma? p01contact thinks it's a field separator! I've already tried \ % ' ....

How does p01contact actually send the mail?

I seem to have most of the plugin working. However when I enter in all the information in the fields, and make sure the plugin has a destination address, I just get "Error: Message Not Sent" With no explanation why. Most likely I'm missing something in my configuration. But then how does it actually send an email? Does it use the server's "sendmail" command? (If so I already have that configured.

[EDIT] I figured it out. I did some research on php mailing function and how it relates to sendmail (also found my sendmail relay configuration wasn't working anymore).

askcopy syntax Not Working

We have installed p01contact-1.1.5 in our GetSimple CMS.
Please find this form at our following URL:
http://www.shastras.com/contact/

We tested this Form twice.
askcopy syntax is Not Working.
We are not getting any copy message at the sender's email id.
Please guide us as to what to do in this regard.

Thanks,
Lakshmanan

version

Hi

I installed version 1.1.5 on getsimple CMS but it tells me that I'm still on version 1.1.4.

I always have the message: There is a new version!
Download the latest version (1.1.5)
Capture

sent_copy

Hi, if you use askcopy field, after filling the form, a message appear on top of the site: "Sent_copy" both youi check or uncheck askcopyfield, just because there is A askcopy field.
Imho this is an error. "Sent_copy" should be displayed only if user checked askcopy field, so i modified source file p01-contact.php at line 696 where previous was:
$askcopy = True;
now is:
$askcopy =in_array("selected",$value[0]) ? TRUE : FALSE;
so if "selected" is in array value[0] then askcopy is true and Sent_copy is displayed, otherwise askcopy is false and "email sent" is displayed instead.

Piece of code is in:

case 'askcopy' : 
              $askcopy =in_array("selected",$value[0]) ? TRUE : FALSE; 
              $content .= '<p><b>' . $this->lang('askedcopy').'.</b></p>';
              break;
default :
             $content .=  $value;

Thanks

Blacklist / Whitelist / textarea

Hi Nicolas,
some ideas for improvements:

i think it's better to make the "isBlacklisted" Function caseinsensitive. (P01contact_Field.php - Line: 164)
In textareas i want to blacklist e.g. "href=,class=,id= ..." - but in the current version the function works only if the input is exactly like my values in the Backend.

I changed Line 174 + 176 to:
Line 174: $content = array_filter(explode(',', strtolower($cl->content)));
Line 176: $found = preg_match("$avoid", strtolower($this->value));

this works for me.

I also added the maxlength-attribute to "<textarea id= ..>" in Line 214.
$html .= '<textarea id="' . $id . '" rows="10" maxlength="3000" ';
So I prevent too long inputs (possibly from the clipboard)

Greetings
Gerhard

Get rid of of PHP session cookie - PicoCMS: enable plugin only for the Contact page?

Is that possible?
It is possible to disable a plugin in PicoCMS's config.yaml - maybe it could then be enabled for a particular page only?

The reason I ask is because I would like my sites to not store any cookies on my visitor's machine.
Is the session cookie necessary for the plugin to work safely?
If so, could it be rewritten in a way that the cookie is stored only when the contact page is opened?

Problems with PicoContact in PicoCMS

Hi, i've installed it like ur description. Downloadet the p01-contact, placed this in /cms_pico/appdata/plugins and rename-it to PicoContact.

The plugin is loadet, see screenshot. But if i use "(% contact %)" on pages, i only see this like in screenshot. Raw Text.

What am i doing wrong? Hope u can kick me to the right way

Unbenannt
Unbenannt1

server with port not 80

please use:
define('P01C\SERVER', 'http://' . SERVERNAME . (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT']!=='80') ? $_SERVER['SERVER_PORT']: '');
to handel server with port not 80.

UTF8 text inside subject and form field

Hi,

I had greek chars not working in subject and form fields.

To make them work I had to patch send_mail() function with following:

$subject="=?utf-8?Q?".html_entity_decode($subject, ENT_COMPAT, 'UTF-8')."?=";

    $headers  = "From: ". html_entity_decode($name, ENT_COMPAT, 'UTF-8')."<$email>\r\n";
    $headers .= "Reply-To: ". html_entity_decode($name, ENT_COMPAT, 'UTF-8')." <$email>\r\n";
    $headers .= "Return-Path: ". html_entity_decode($name, ENT_COMPAT, 'UTF-8')." <$email>\r\n";

Could you please review this patch and if possible include it in next release
so that we don't have to patch it ourselves after every update.

Thanks.

https problems

Hi,

i'm running my pico installation with https but it seems that p01contact is using only http? All links like the css include and the form action of course are linking to the http version of my website not the https, so there are browser security warnings, that the connection is not secure when you are submitting the form :-(

Regards,
Christian

Warning: Creating default object from empty value

PHP error on pages:

Warning: Creating default object from empty value in /home/public/plugins/p01-contact/src/P01contact.php on line 191

I pulled the latest version of this file from your github account, it was previously indicating line 210.

Issue goes away if I disable the hidden honeypot field.

Error when there is no email field

As instructed in the readme file, I placed the p01-contact directory inside plugins folder and renamed it to PicoContact.

I have then created a form using the following parameters in my contact.md file,

Send us a direct message
---
(% contact : [email protected] %)

The form shows up in the web-browser with the default fields and I am able to enter text into them, but while I submit, I get the error saying Error : no message was sent.

CSS relative path broken with some server DOCUMENT_ROOT settings

Hello Nicolas

something is going wrong on my LIVE-SYSTEM with the "RELPATH" Var.
The "style.css" is not called.
The Problem is in the Var: "$_SERVER['DOCUMENT_ROOT']"

MY XAMPP TEST-SYSTEM:
P01C\PATH: C:\xampp_5.6.24\htdocs\test\plugins\p01-contact/
DOCUMENT_ROOT: C:/xampp_5.6.24/htdocs
RELPATH: \test\plugins\p01-contact/

MY LIVE SYSTEM: (Provider 1+1 or also Profihost)
Path: /homepages/0/d109796559/htdocs/test/plugins/p01-contact/
DOCUMENT_ROOT: /kunden/homepages/0/d109796559/htdocs
RELPATH: lugins/p01-contact/

The only Workaround for me to make it run:
define('P01C\RELPATH', dirname(substr(PAGEURL, strlen(SERVER)))."/plugins/p01-contact/");

Greetings
Gerhard

Checkbox (Group of checkboxes)

Hi Nicolas,

I'm testing p01-contact V1.1.6 in Get Simpe V3.15. PHP 7.2.10
When a Checkbox has more than 1 Option = "checkbox "Checkbox-Test" = one | two | five "
only the last Selected Checkbox Value will be sent via e-Mail

I think the Problem is in "P01contact_Field.php" Line 229
case 'checkbox': case 'radio':

case 'checkbox': can be in array

I changed it to:
case 'checkbox': $html .= '<div class="options">'; foreach ($this->value as $i => $v) { $selected = $this->isSelected($i) ? ' checked' : ''; $v = !empty($v) ? $v : 'Default'; $html .= '<label class="option">'; $html .= "<input id=\"{$id}_option{$i}\""; $html .= " type=\"$type\" class=\"$type\" name=\"{$name}[$i]\""; $html .= " value=\"$i\"$disabled$required$selected />$v"; $html .= '</label>'; } $html .= '</div>'; break;

Radio is (as until now):
case 'radio': $html .= '<div class="options">'; foreach ($this->value as $i => $v) { $selected = $this->isSelected($i) ? ' checked' : ''; $v = !empty($v) ? $v : 'Default'; $html .= '<label class="option">'; $html .= "<input id=\"{$id}_option{$i}\""; $html .= " type=\"$type\" class=\"$type\" name=\"{$name}\""; $html .= " value=\"$i\"$disabled$required$selected />$v"; $html .= '</label>'; } $html .= '</div>'; break;

This Fix works for me - but:
If the Checkbox-Group is a required Form-Field every Checkbox in the Group must be checked to send the Form

Greetings
Gerhard

Slovak Lang file - p01contact

Hi, I am sending you an up-to-date translation into Slovak.
But one sentence is missing in the translation (mail_template.html):
"If this mail should not be for you, please contact" This sentence is "fixed" in code.
sk.yml.zip

Blacklist seems to be ignored

Hello Nicolas,

relating to Issue #31 "Problem with Google reCaptcha" I checked the Blacklist-Feature.
I tested the Form with : (% contact %) and (% contact: [email protected], text "Vorname" , text! "Nachname", email! %)
In p01-contact "Backend" I defined a Blackist-Field "email" with the Value "[email protected]" (in 1. Fields-checklists-row)
The Form will be sent - even if the mail-adress is in the Blacklist.
Same action with other Field-Types

Best regards
Gerhard

configuration panel not shown

Hello,

I've downloaded the newest version of the p01contact plugin for picocms, but when I try to show the configuration panel within a page via (% contact_admin_config %) there is only the message "There is a new release! Download the last version (1.1.1)" I dont know why, because I have the newest version of the plugin :-/ Thanks for your help.

Regards,
Christian

Problem with Google reCaptcha

Hi,
I've downloaded the newest version of the p01contact plugin for getsimple an i have a problem with Google reCaptcha.
It does not matter if "I'm not a Robot" is checked or unchecked - in both Cases the Form will be sent.
(even if "I'm not a Robot" is unchecked)

Best regards
Gerhard

reCaptcha links in admin broken

The links in the description for the reCaptcha keys in admin are broken. Looks like a syntax error in PHP. The output it produces is this: <a href=\"https://www.google.com/recaptcha/admin\">reCaptcha admin</a>

Use regex patterns instead of blacklist/whitelist

The "fields lists" settings would be replaced by "fields rules" where blacklist/whitelist is renamed to "should match" and "shouldn't match" and the content would be a regex capture group, like :

first|second|third

The code would be something like

$rule = array_filter($this->form->config('rules'), function($rule) {
    return $rule->field_type == $this->type;
});
if (!$rule || empty($rule->regex)) return;
$pattern = "`({$rule->regex})`";
$found = preg_match($pattern, $this->value);
return ($found && $rule->not) || (!$found && !$rule->not);

Instead of

public function isBlacklisted()
{
$list = $this->form->config('checklist');
if (!$list) return;
foreach ($list as $cl) {
if ($cl->name != $this->type) {
continue;
}
$content = array_filter(explode(',', $cl->content));
foreach ($content as $avoid) {
$found = preg_match("`$avoid`", $this->value);
$foundBlacklisted = $found && $cl->type == 'blacklist';
$notFoundWhitelisted = !$found && $cl->type == 'whitelist';
if ($foundBlacklisted || $notFoundWhitelisted) {
return $cl->type;
}
}
}
return false;
}

Log of results

I have a local version that writes all the results to a log file per page for database tracking and analytics. I think this feature is very useful and could placed in the master.

Not a log of contact events; it is a flat file database of all the results of the form submission.

Pico gives HTTP 500 error with p01contact

Hi,

after I had a few problems installing the new version of Pico I wanted to try your contact plugin (one of the reason why I updated the German translation) but I'm no facing another HTTP 500 Error.

I downloaded the code, uploaded the p01-contact folder and renamed it to PicoContact. Afterwards Pico replies with a HTTP 500 Error code and the error log says:

[Mon Feb 19 09:13:24.739487 2018] [proxy_fcgi:error] [pid 19690:tid 140345144690432] [client 62.143.162.45:55494] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught LogicException: Unable to add function "contact" as extensions have already been initialized. in /home/webmxxp3h/html/something/pico2/vendor/twig/twig/lib/Twig/Environment.php:1262\nStack trace:\n#0 /home/webmxxp3h/html/something/pico2/plugins/PicoContact/PicoContact.php(86): Twig_Environment->addFunction('contact')\n#1 /home/webmxxp3h/html/something/pico2/vendor/picocms/pico/lib/AbstractPicoPlugin.php(117): PicoContact->onPageRendering(Object(Twig_Environment), Array, 'index.twig')\n#2 /home/webmxxp3h/html/something/pico2/plugins/PicoDeprecated/PicoDeprecated.php(857): AbstractPicoPlugin->handleEvent('onPageRendering', Array)\n#3 /home/webmxxp3h/html/something/pico2/plugins/PicoDeprecated/PicoDeprecated.php(688): PicoDeprecated->triggerEvent(1, 'onPageRendering', Array)\n#4 /home/webmxxp3h/html/something/pico2/vendor/picocms/pico/lib/AbstractPicoPlugin.php(117): PicoDeprecated->onPageRendering('index.twig', Array)\n#5 /home/webmxxp3h/html/something/pi...\n'

[Mon Feb 19 09:17:08.087594 2018] [proxy_fcgi:error] [pid 19689:tid 140345102726912] [client 62.143.162.45:42644] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught LogicException: Unable to add function "contact" as extensions have already been initialized. in /home/webmxxp3h/html/something/pico2/vendor/twig/twig/lib/Twig/Environment.php:1262\nStack trace:\n#0 /home/webmxxp3h/html/something/pico2/plugins/PicoContact/PicoContact.php(86): Twig_Environment->addFunction('contact')\n#1 /home/webmxxp3h/html/something/pico2/vendor/picocms/pico/lib/AbstractPicoPlugin.php(117): PicoContact->onPageRendering(Object(Twig_Environment), Array, 'index.twig')\n#2 /home/webmxxp3h/html/something/pico2/plugins/PicoDeprecated/PicoDeprecated.php(857): AbstractPicoPlugin->handleEvent('onPageRendering', Array)\n#3 /home/webmxxp3h/html/something/pico2/plugins/PicoDeprecated/PicoDeprecated.php(688): PicoDeprecated->triggerEvent(1, 'onPageRendering', Array)\n#4 /home/webmxxp3h/html/something/pico2/vendor/picocms/pico/lib/AbstractPicoPlugin.php(117): PicoDeprecated->onPageRendering('index.twig', Array)\n#5 /home/webmxxp3h/html/something/pi...\n'

Any help would be appreciated!

Kind regards
sonst-was

Pico_CMS in Nextcloud

Has this been tested with Pico_CMS in Nextcloud?

When i try to do a simple ( % contact % ) within a page, it doesn't generate a form. Instead I just get red text that is non interactive:

Name
Email
Subject
Message

Clearly the plugin has been loaded (I assume therefor correctly or it wouldn't work at all) since text has been generated, but I'm not sure what could be missing. Any ideas?

[EDIT]

Ah unfortunately it looks like it has to be loaded in the theme. That's a shame, on the page would be so much easier

Save forms to file instead of just email them

I have tried p01contact and it seems very poweful.

I'ts nice to post form entries to an email but It would be even better to be able to store entries to a file (eg a csv). This would help to make questionaires and be able to do a statistica analysis. Even just a simple log that could be parsed later could do the trick.

If you don't plan on implementing such a feature could you give any clues on where to modify the code to try and implement this;

Thanks

Translations

A lot of localization strings have been updated in v1.x, so translations are not up to date.

Except the English and French files that serve as references, the 17 other existing translations are partially complete, especially Swedish and Norwegian that haven't been updated since a long time.

For contibuting, see Adding a language, improving translations.

  • English
  • French
  • Italian (thanks to Nicola Scattaglia)
  • Portuguese (new, thanks to Julianna Brandão and Rafael Capaci)
  • Czech (thanks to princezna)
  • German (thanks to sonst-was)
  • Turkish (thanks to Efrahim Önder)
  • Bulgarian
  • Danish
  • Georgian / Kartuli
  • Lithuanian
  • Macedonian
  • Dutch
  • Norwegian
  • Polish
  • Romanian
  • Russian
  • Slovak
  • Serbian
  • Spanish
  • Swedish

Of course, other languages are welcome.

POST Sanitization?

Hi,
it seems that you don't sanitize $_POST data, isn't it?
In P01contact_Form.php line 205:
* @param array $post Sanitized p01-contact data of $_POST
but checkSpam is called by post() line 184:
if ($hasFieldsErrors || $this->checkSpam($posted) !== true) {
and $posted is built by line161:
$posted = $_POST['p01-contact_fields'];
So it seems to me that there's no sanitization.

Maybe i'm wrong and missing something obvious...

Email fields and date customization

Hi

how to delete this fields in the email ?

(text, Required) #0

(Required) #1

(textarea, Required) #3

can i change the date in the email like this ?

DD MM YY,HH:MM:SS instead of Fri, 05 Oct 2018 01:10:34 +0200

Where can i translate the fields in french in the mail ?

name, subject

thanks

Plugin does not work

The plugin is installed and activated. Plugin settings saved. The shortcode does not work, it looks like (% contact %) on the page.

writing in plugin directory is a bad idea

Hello,

I am using getsimple symlinked to mnany different websites. Plugins directory is symlinked and not writeable for customer websites. So it is mandatory to move configuration file config.php to data directory. So p01contact plugin works symlinked, too.

Todo:

  • at first configuration test if p01config.php exists in data directory. If not, copy template from plugins directory.
  • if p01config.php exist use this for storing individual settings of website.

Best regards
Andreas

He keeps telling me that I'm a robot

It does not send messages, every time the same error
"Blip Blop. Blup. You're as fast as a robot. Please wait a few seconds."

captha "I'm not a robot" active

domain: porownywarkaleasingowa.pl
default mail: [email protected]

The honeypot field can not be turned off

help me pls

Warning: count(): Parameter must be an array

The following occurs after submitting form, but doesn't prevent email being sent:
Warning: count(): Parameter must be an array or an object that implements Countable in /.../plugins/p01-contact/src/P01contact_Form.php on line 215

Small typo:
if (count($loads > 1) && $loads[1] - $loads[0] < $this->config('min_sec_after_load')) { ...
should be (I assume):
if (count($loads) > 1 && $loads[1] - $loads[0] < $this->config('min_sec_after_load')) {

php 8.1 error

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in ....l/php8.1/docroot/plugins/PicoContact/src/P01contact_Form.php on line 478

Github API rate limit exceeded

Hi Nicolas. I use the p01contact als GS plugin without any issues since years. But since last saturday it doesn't work anymore.

The config panel told me:

New release check error debug : Github API rate limit exceeded for xxx.xxx.xxx.xxx. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

I' tried to find out, how can I do an Authenticated requests with the form, but I didn't found a solution so far. Does anyone could help ?

Thank you and kind regards. Christian

Random Checkbox Appears with CSP added to webpage

Here is a random one I was wondering if someone could shine some light on what's going on. In the interest of security and getting an A+ in Mozilla's Observatory, I added a basic CSP header to my picocms webpage. Thing is, when I do this, a random checkbox is added to the bottom of my form above the send button. This checkbox has no text or anything. When it's checked it stops the form from going through. My first thought was that somehow the honeypot that was showing so I turned it off, but it's still there.
Clearly it's something wrong with my implementation that's effecting the p01contact plugin. I'm using Nginx and PHP8.1
Here is the header I added:

add_header Content-Security-Policy "default-src 'none'; script-src 'self; connect-src 'self'; img-src 'self'; style-src 'self'; base-uri 'self; form-action 'self'; frame-src https://SiteINeedanIframeFrom.com; frame-ancestors 'none'" always;

Any Ideas?

Emails not being received

Hi,

I have just discovered that my p01-contact form (http://bbmc.boys-brigade.org.uk/index.php?id=contact-us) is not working. It was working previously, but had not been tested for a long time. I have now tried to send a test message and although it says it has sent it, the email is not received. I had made no configuration changes before it stopped working, but when I looked at the configuration. it had the minimum message size of 100 and no email address in the contact field. I am sure that I was able to send emails including short messages previously. I have fixed both of these problems but emails are still not being received.

The syntax I am using is:

(% contact : [email protected], name!, subject!, email!, phone, text "Company", text "Battalion/District", message! %)

Can anyone explain what has happened, why this no longer works and what can be done to fix it.

Thanks,

Phil Tarr
(BB Mountaineering Club)

Release policy for Get-Simple?

Hello,

I just updated this plugin for a website based on GetSimple, because I experienced a bug with fields of type "radio". These could be checked multiple times.

I fixed this bug in my local version, then looked at your code from Github and saw that this same bug had already been fixed. So I updated the plugin through GetSimple, but the bug was not fixed in the latest version 1.1.3.

The version in the GetSimple extend-repo appears to be over two years old!
Since then a couple of bugs have been fixed, but have not been released.

Then users can better get the source from Github directly, but only developers know about this.
But then they always get the latest code, mainly untested.

I also updated the source from Github, but because of the updated style.css the form was displayed less wide because of
max-width: 26em;
So I restored the original style.css instead.

If you want to set the form less wide (for example because of smaller devices) then you can better use CSS media-selectors instead that test on the screen width of the device.

Will there be a new release for GetSimple any time soon?
That would save other users from having to manually update the plugin code.

Thanks in advance, because I really like this plugin, which is so much more than its name says: a contact form.

removing the ip from email

Hi,

how is it possible to remove the ip address from the email? I dont need it and because of gdpr it should be removed and not stored.

Thanks for your help

form action correction

Hi I'm a bit of a git noob, but I'll contribute this... The form has appeared to stop working because instead of actually submitting to the same page, e.g. /contact-us/#p01contact, it goes to /#p01contact. I'm not sure what's behind this behavior, but found that it behaves correctly if you replace action="#p01contact" with just action="", which forces a reload of the same page.

Honeypot issues

I’m getting spam emails despite having the honeypot setting checked, so I was going to see what I can do. Is the honeypot field that hidden checkbox with name “p01-contact_fields[totally_legit]”? I have no idea how spam bots work but isn’t a plain checkbox a little too simple to get around?

Also, I tried to uncheck the setting to use a honeypot field out of curiosity but apparently this isn’t working, i. e. after saving the settings it will still/again be checked.

Change path to stylesheet in p01-contact/src/P01contact.php, or make it configurable?

I'm refering to this line.
On my machine it returns an invalid path (404) because both my server root and the plugin folder are symlinked.

Could this be made user configurable?
I have an implementation in the works in my fork but did not want to mess with this file because I don't know how GetSimple works.

I could imagine something like this:

if (empty($this->ContactStyle)) $this->ContactStyle=SERVER.RELPATH."style.css";
$defaultStyle = '<link rel="stylesheet" href="'.$this->ContactStyle.'"/>';

g-recaptcha-response Error

We have installed p01contact-1.1.5 in our GetSimple CMS.

Please find this form at our following URL:
http://www.shastras.com/contact/

Following Error Message is seen at /home/xxx/public_html/data/other/logs/errorlog.txt:
[30-May-2019 08:19:59 Asia/Kolkata] PHP Notice: Undefined index: g-recaptcha-response in /home/xxx/public_html/plugins/p01-contact/src/P01contact_Field.php on line 116

Please provide us the Fix for this if this could be corrected.

Thanks,

Lakshmanan

Emails not being received

Hi Nicolas,
Just trying to upgrade from version 0.9.1 and came back to an old issue.
Your plugin 1.1.4 is working as intended, CPanel Track Delivery even shows the email was delivered to the intended server, and yet it never arrives in my inbox.
The problem, I believe, is that the email is sent with the visitors email address, something which will be rejected by SPF validation these days.
Looking back, I realise I patched 0.9.1 send_mail() to always use GSFROMEMAIL as the sending address (also calling ini_set("sendmail_from", GSFROMEMAIL) required by some hosts, I found). This solved the problem, provided the SPF record includes the hosting server.
I must apologise for not reporting this solution way back on issue #12 .
I haven't quite worked out how to apply this to 1.1.4 properly. I'd likely patch P01contactForm::mailHeaders() as above.
The main side effect, is that "Reply" won't work in your email client, however "Reply-All" usually does, at least in the clients I've tried.

Regards,
Brian

version number

In the source file of the latest version 'p01-contact/src/P01contact.php' you have to adjust the version number on line 24

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.