Jump to content
Pete

ProcessEmailToPage

Recommended Posts

Hi @adrian 

I tried the new version of Flourish and it's the same. I also switched to PHP 7.0.4 and it still does the same. Whereas my improved version works in both versions of PHP.

The problem that Werner and I had isn't to do with PHP 7 or HTTPS vs HTTP rather connecting to the POP3 server using an unsecured connection (Force secure set to off). 

My version fixes the fMailbox.php file while keeping all security settings in place.

 

I've included it for anybody who comes across this same problem.

fMailbox.php

Share this post


Link to post
Share on other sites

Thanks again @RDC - I am wondering if perhaps you'd consider submitting a PR to the Flourish guys - seems like it would be a good change for all their users. Once it is in their repo, I'd be happy to include the updated version in this module.

Share this post


Link to post
Share on other sites

I'll see if I can (flat out at the moment but needed an email image module for Processwire as Ryan's isn't supported in PW 3)

  • Like 1

Share this post


Link to post
Share on other sites

I want to use tags in the pages i create (in addition to categories).

Is there a way to split an email text (for example the subject text) with an hash (#) to save it in a field?

Or is there a better way to do this?

Share this post


Link to post
Share on other sites
2 hours ago, tires said:

Is there a way to split an email text (for example the subject text) with an hash (#) to save it in a field?

I think the only way to send different content from the email to different fields is using the delimiters options. Have you tried to achieve what you want with that? Or am I missing the point? I don't think I really understand the "hash" idea you are talking about.

Share this post


Link to post
Share on other sites

Delimiters are good ... but i think a bit to complicated for inexperienced users.

My idea was to keep it simpler:
If the subject of the email is "My super test email #test #cool #funky", the title of my page should be "My super test email" an the tags should be "test", "cool" and "funky".

 

Share this post


Link to post
Share on other sites
On 9/1/2018 at 11:51 AM, tires said:

Delimiters are good ... but i think a bit to complicated for inexperienced users.

My idea was to keep it simpler:
If the subject of the email is "My super test email #test #cool #funky", the title of my page should be "My super test email" an the tags should be "test", "cool" and "funky".

 

This should be doable, but I guess the problem may be how the tags field stores these. Are you using page reference field for tags, or a select options field, or some other approach? In implementing this I'd want to make sure it worked in as many scenarios as possible.

Although I am not really sure if this module gets much use at all - it seems pretty quiet around here and personally I have never had a use for it (even though I helped extend it quite a bit since Pete's initial development). 

Share this post


Link to post
Share on other sites
5 hours ago, adrian said:

Although I am not really sure if this module gets much use at all - it seems pretty quiet around here and personally I have never had a use for it (even though I helped extend it quite a bit since Pete's initial development). 

I use this module on every website I have built for myself personally and also clients

  • Like 4

Share this post


Link to post
Share on other sites
12 hours ago, adrian said:

I am not really sure if this module gets much use at all - it seems pretty quiet around here

This may also be an indication for modules that work well and fulfil a task perfectly, leaving nothing to be desired. 🙂

  • Like 4

Share this post


Link to post
Share on other sites
41 minutes ago, horst said:

This may also be an indication for modules that work well and fulfil a task perfectly, leaving nothing to be desired. 🙂

That's indeed the case, for me.  As both a Telecommunications Engineer and Web Developer, this module allows me to use emails (from submitted forms or sent directly from someone's mail account) to aid in generating webpages.  Just a few of the many things that I use this module for:

  • Blog Submissions
  • Article For Review/Approval Submissions
  • Form Builder Submissions
  • Status Updates (to already created subject areas)

The fact that you can submit to multiple email addresses allows for multiple uses of this module.

If you can think outside-of-the-box, you would be surprised how useful this module can be.  I'm glad that you extended the original module from @ryan.  When you did, I saw instant usability for this module.

 

  • Like 3

Share this post


Link to post
Share on other sites

Thanks for the feedback @cstevensjr - glad to hear it has served you well, although I must point out that Pete was the one who did all the initial work with this module - I just picked up the torch and added a bunch of new features.

I'll wait to hear back from @tires about how he is storing tags and we'll go from there.

  • Like 2

Share this post


Link to post
Share on other sites

I'am actual setup a usecase - where a customer have to create directly from his smartphone new pages with some kind of marketplace content (second hand agriculture machines) so the easy way to go is telling him - take a picuture go to the share button write a title and a description...tidy up later if you want back in the office...

Using it private for recipies....cooking same procedure i like it very much and out of the box thinking is may default way to think since i'm not so experienced in programming i've to use the tools that i could handle 😉

best regards mr-fan

 

  • Like 1

Share this post


Link to post
Share on other sites
On 9/3/2018 at 7:13 AM, adrian said:

This should be doable, but I guess the problem may be how the tags field stores these. Are you using page reference field for tags, or a select options field, or some other approach? In implementing this I'd want to make sure it worked in as many scenarios as possible. 

You are right. The tags should be saved as a new page via page reference field.
I guess that is the most common way to handle it, right?

Share this post


Link to post
Share on other sites

Hi everyone,

@dab has kindly sponsored support for multi-language subjects and content which I have just added to v1.3.0

Here is my test email content which will hopefully show you how it works.

Subject

English Subject ==#es== Spanish Subject ==#fr==  French Subject

 

Body

English body

==#es==

Spanish body

==#fr==

French body

==sidebar==

Sidebar english

==sidebar==#es==

Sidebar spanish

==sidebar==#fr==

Sidebar french

 

There is also a new "Auto Activate Languages" checkbox that you'll probably want to check in the module config settings.

Please let me know if you have any problems with this new functionality.

Cheers,
Adrian

  • Like 3

Share this post


Link to post
Share on other sites

Also just wanted to mention that when building this ML stuff, I had to setup a new test email address because gmail addresses no longer work with this module. Turns out Outlook (hotmail) ones don't either. I ended up using a Yandex address. In case anyone finds it useful, these are the settings I used:

image.thumb.png.6b0c4b81127139de29cbedbdb9fe5758.png

Hope that helps!

Share this post


Link to post
Share on other sites

@adrian thanks for the work on this!

It's a super module that just got even better!  Hope it's of use to others in its new multi-language support mode.

  • Like 3

Share this post


Link to post
Share on other sites

I was just wondering if perhaps anyone has had this issue before. I am pulling in some emails for a system (all the emails are in tables etc), but some of my emails are getting cut off half way through.

For example, the original email has an image with text to the right of it, but in my body field, the code is cut off right after the image and does not pull in the rest of the email. I body field set to not maximum, but for the life of me I can not figure out the issue. Any help would be appreciated.

Share this post


Link to post
Share on other sites

Any reason why the sanitizer is used to strip all but the most basic tags from the emails? I just realised that it strips <ol> <ul> and <li>. I've hacked my copy to fix this, but would it perhaps be better to set the allowable tags as an option, with the basic ones as default?

Share this post


Link to post
Share on other sites
5 hours ago, MarkE said:

Any reason why the sanitizer is used to strip all but the most basic tags from the emails? I just realised that it strips <ol> <ul> and <li>. I've hacked my copy to fix this, but would it perhaps be better to set the allowable tags as an option, with the basic ones as default?

I don't know - we'd have to get @Pete's input on why that was done, but if you want to put together a PR to add a module setting where these can be configured, I can push to the main repo.

Share this post


Link to post
Share on other sites

Thanks @adrian - At the moment, I have simply added the tags <ol>, <ul> and <li> to the allowableTags in lines 510 and 514. I haven't created a configuration option. I think it might be better, however, to adapt the existing "inline images" option to be a "rich text and inline images" option, using sanitizer->purify rather than sanitizer->textarea. I've struggled to code this, however, as I am unsure about the options in sanitizer->purify. I thought it should work without any options but, although it allows rich text, it doesn't seem to like the inline images and I can't see how to make it permit those.

Share this post


Link to post
Share on other sites
3 hours ago, MarkE said:

I thought it should work without any options but, although it allows rich text, it doesn't seem to like the inline images and I can't see how to make it permit those.

Not testing in the context of this module, but this looks to work as expected:

image.png.41c4d348f7da2381d700117cd45cb953.png

Does that work as expected at your end?

Share this post


Link to post
Share on other sites

Hmm... I think the sanitizer itself works as you say. There's something else interfering which I don't understand. For info, my use case is to distribute emails from committee members to other committee members and keep a central repository, so there are several steps in the process - the module, email clients and PW core (plus my own code) - so finding the culprit is proving a bit tricky.

The body field I am using has HTML Purifier enabled, so using it in the module doesn't really do anything (apart from seeming to add spurious <p> tags).

As regards amendments to the module, on reflection, it seems that there are several possibilities for adding options:

  1. Further allowed tags
  2. Set stripTags =>false
  3. Use sanitize-purify rather than sanitize->textarea
  4. Don't sanitize (rely on host field sanitization)

.. and maybe more. Given this, it might be best to wait and see what @Pete thinks.

 

  • Like 1

Share this post


Link to post
Share on other sites

I haven't used this module in awhile and now I'm having a problem with a body TextArea field on a new website installation.

If I add the following text "This is a test" in an email body, this is what shows up in the created page in the body field.  This field is configured for CKEditor and has the HMTL Purifer applied to it.

P {margin-top:0;margin-bottom:0;} This is a test

I then created an additional TextArea field and left the Inputfield Type as Textarea and I still have the same problem.  This time is shows up as follows:

P {margin-top:0;margin-bottom:0;} 



This is a test

 

Any help that can be provided to getting rid of the extra formatting information is greatly appreciated.

Share this post


Link to post
Share on other sites

I have the same problem - I think it is caused by some email clients placing

<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>

inside a <head> tag. Something then deletes the <style> tag. The culprits could be any of:

  1. this module
  2. HTMLpurifier for the textarea field
  3. CKeditor

Unfortunately, I have not been able to replicate it with my email client, so checking where the problem is has been tricky.

I think that it is most likely (1) or (3) or both. To eliminate (3), place style{display} in the CKeditor "extra allowed content" of your textarea field (input tab). If it still happens, you could try hacking lines 511 and 514 of ProcesEmailToPage.module to include <style> in the list of allowed tags.

Let me know the results, Ta.

UPDATE: Hi @cstevensjrI managed to create a test email using gmail and developer tools. I think you need to fix both 1 & 3 as per my suggestion. You will see from my previous post that I have suggested a module change to avoid trapping tags like this.

  • Like 1

Share this post


Link to post
Share on other sites

I've got a project where this module may work nicely. One question however: has anyone found a way to update an existing page via email with this? Like send an email to a specific address or with a specific field that will find an existing page and replace a field's content? I'd appreciate any suggestions or ideas along these lines.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By MoritzLost
      This is a new module that provides a simple solution to clearing all your cache layers at once, and an extensible interface to perform various cache-related actions.
      The simple motivation behind this module was that I was tired of manually clearing caches in several places after deploying a change on a live site. The basic purpose of this module is a simple Clear all caches link in the Setup menu which clears out all caches, no matter where they hide. You can customize what exactly the module does through it's configuration menu:
      Expire or delete all cache entries in the database, or selectively clear caches by namespace ($cache API) Clear the the template render cache. Clear out specific folders inside your site's cache directory (/site/assets/cache) Refresh version strings for static assets to bust client-side browser caches (this requires some setup, see the full documentation for details). This is the basic function of the module. However, you can also add different cache management action through the API and execute them through the module's interface. For this advanced usage, the module provides:
      An interface to see all available cache actions and execute them. A system log and logging output on the module page to see verify what the module is doing. A CacheControlTools class with utility functions to clear out different caches. An API to add cache actions, execute them programmatically and even modify the default action. Permission management, allowing you granular control over which user roles can execute which actions. The complete documentation can be found in the module's README.
      Beta release
      Note that I consider this a Beta release. Since the module is relatively aggressive in deleting some caches, I would advise you to install in on a test environment before using it on a live site.
      Let me know if you're getting any errors, have trouble using the module or if you have suggestions for improvement!
      In particular, can someone let me know if this module causes any problems with the ProCache module? I don't own or use it, so I can't check. As far as I can tell, ProCache uses a folder inside the cache directory to cache static pages, so my module should be able to clear the ProCache site cache as well, I'd appreciate it if someone can test that for me.
      Future plans
      If there is some interest in this, I plan to expand this to a more general cache management solution. I particular, I would like to add additional cache actions. Some ideas that came to mind:
      Warming up the template render cache for publicly accessible pages. Removing all active user sessions. Let me know if you have more suggestions!
      Links
      https://github.com/MoritzLost/ProcessCacheControl ProcessCacheControl in the Module directory

    • By joshua
      This module is (yet another) way for implementing a cookie management solution.
      Of course there are several other possibilities:
      - https://processwire.com/talk/topic/22920-klaro-cookie-consent-manager/
      - https://github.com/webmanufaktur/CookieManagementBanner
      - https://github.com/johannesdachsel/cookiemonster
      - https://www.oiljs.org/
      - ... and so on ...
      In this module you can configure which kind of cookie categories you want to manage:

      You can also enable the support for respecting the Do-Not-Track (DNT) header to don't annoy users, who already decided for all their browsing experience.
      Currently there are four possible cookie groups:
      - Necessary (always enabled)
      - Statistics
      - Marketing
      - External Media
      All groups can be renamed, so feel free to use other cookie group names. I just haven't found a way to implement a "repeater like" field as configurable module field ...
      When you want to load specific scripts ( like Google Analytics, Google Maps, ...) only after the user's content to this specific category of cookies, just use the following script syntax:
      <script type="optin" data-type="text/javascript" data-category="statistics" data-src="/path/to/your/statistic/script.js"></script> <script type="optin" data-type="text/javascript" data-category="marketing" data-src="/path/to/your/mareketing/script.js"></script> <script type="optin" data-type="text/javascript" data-category="external_media" data-src="/path/to/your/external-media/script.js"></script> <script type="optin" data-type="text/javascript" data-category="marketing">console.log("Inline scripts are also working!");</script> The type has to be "optin" to get recognized by PrivacyWire, the data-attributes are giving hints, how the script shall be loaded, if the data-category is within the cookie consents of the user. These scripts are loaded asynchronously after the user made the decision.
      If you want to give the users the possibility to change their consent, you can use the following Textformatter:
      [[privacywire-choose-cookies]] It's planned to add also other Textformatters to opt-out of specific cookie groups or delete the whole consent cookie.
      You can also add a custom link to output the banner again with a link / button with following class:
      <a href="#" class="privacywire-show-options">Show Cookie Options</a> <button class="privacywire-show-options">Show Cookie Options</button> This module is still in development, but we already use it on several production websites.
      You find it here: https://github.com/blaueQuelle/privacywire/tree/master
      Download: https://github.com/blaueQuelle/privacywire/archive/master.zip
      I would love to hear your feedback 🙂
      Edit: Updated URLs to master tree of git repo
       
    • By David Karich
      Admin Page Tree Multiple Sorting
      ClassName: ProcessPageListMultipleSorting
      Extend the ordinary sort of children of a template in the admin page tree with multiple properties. For each template, you can define your own rule. Write each template (template-name) in a row, followed by a colon and then the additional field names for sorting.
      Example: All children of the template "blog" to be sorted in descending order according to the date of creation, then descending by modification date, and then by title. Type:
      blog: -created, -modified, title  Installation
      Copy the files for this module to /site/modules/ProcessPageListMultipleSorting/ In admin: Modules > Check for new modules. Install Module "Admin Page Tree Multible Sorting". Alternative in ProcessWire 2.4+
      Login to ProcessWire backend and go to Modules Click tab "New" and enter Module Class Name: "ProcessPageListMultipleSorting" Click "Download and Install"   Compatibility   I have currently tested the module only under PW 2.6+, but think that it works on older versions too. Maybe someone can give a feedback.     Download   PW-Repo: http://modules.processwire.com/modules/process-page-list-multiple-sorting/ GitHub: https://github.com/FlipZoomMedia/Processwire-ProcessPageListMultipleSorting     I hope someone can use the module. Have fun and best regards, David
    • By dimitrios
      Hello,
      this module can publish content of a Processwire page on a Facebook page, triggered by saving the Processwire page.
      To set it up, configure the module with a Facebook app ID, secret and a Page ID. Following is additional configuration on Facebook for developers:
      Minimum Required Facebook App configuration:
      on Settings -> Basics, provide the App Domains, provide the Site URL, on Settings -> Advanced, set the API version (has been tested up to v3.3), add Product: Facebook Login, on Facebook Login -> Settings, set Client OAuth Login: Yes, set Web OAuth Login: Yes, set Enforce HTTPS: Yes, add "https://www.example.com/processwire/page/" to field Valid OAuth Redirect URIs. This module is configurable as follows:
      Templates: posts can take place only for pages with the defined templates. On/Off switch: specify a checkbox field that will not allow the post if checked. Specify a message and/or an image for the post.
      Usage
      edit the desired PW page and save; it will post right after the initial Facebook log in and permission granting. After that, an access token is kept.
       
      Download
      PW module directory: http://modules.processwire.com/modules/auto-fb-post/ Github: https://github.com/kastrind/AutoFbPost   Note: Facebook SDK for PHP is utilized.


×
×
  • Create New...