Jump to content

ProcessEmailToPage


Pete

Recommended Posts

Adrian/Pete, I am having a problem with this module on a newly fresh install of 3.0.17.

The module installs alright

post-756-0-70536500-1463528235_thumb.png

However, whenever you click the settings button, this is what I get:

post-756-0-87640100-1463528249_thumb.png

Any help you can provide is greatly appreciated.  It works on other installs (even ones that have upgraded to 3.x).  I have been meaning to spend some additional time troubleshooting this issue but just haven't had the free time.  

  • Like 1
Link to comment
Share on other sites

Went back to PHP 7.0.6 and did the  upgrade to the newest ProcessEmailToPage version.  I sent you a PM with the results.

Thanks for all the testing!

Just to let everyone else know - Charles has tested the latest version (just committed) and it is working properly with PHP 7.

Error seems to have resolved with new cron.

Thanks will try with "/dev/null 2>&1" if it repeats.

Glad you sorted out the cron issues!

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

I went from PHP 5.5.9 to 7.07 (on PW 3.0.22, Process Email to Page 1.1.9) and got a cron issue right away (before it was working perfectly).

This was the error message:

Error: Exception: There was an error connecting to the server. A secure connection was requested, but was not available. Try a non-secure connection instead. (in /var/www/vhosts/aic-info.de/httpdocs/pw/site/modules/ProcessEmailToPage/flourishlib/fMailbox.php line 969)

#0 /var/www/vhosts/aic-info.de/httpdocs/pw/site/modules/ProcessEmailToPage/flourishlib/fMailbox.php(1199): fMailbox->connect()
#1 /var/www/vhosts/aic-info.de/httpdocs/pw/site/modules/ProcessEmailToPage/ProcessEmailToPage.module(439): fMailbox->listMessages()
#2 /var/www/vhosts/aic-info.de/httpdocs/pw/wire/core/WireHooks.php(619): ProcessEmailToPage->importFromEmail(Object(ProcessWire\HookEvent))
#3 /var/www/vhosts/aic-info.de/httpdocs/pw/wire/core/Wire.php(370): ProcessWire\WireHooks->runHooks(Object(ProcessWire\Page), 'render', Array)
#4 /var/www/vhosts/aic-info.de/httpdocs/pw/wire/modules/Process/ProcessPageView.module(205): ProcessWire\Wire->__call('render', Array)
#5 [internal function]: ProcessWire\ProcessPageView->

------------------------------------------------------------------------------------------------------------------

Adding the "/dev/null 2>&1"  to the unique URL did not reproduce the error message, but it did also not fetch the mail from the mail box. As switching back to PHP5.5.9 cures it there seem to be glitches when using PHP 7.x

Link to comment
Share on other sites

Follow-up

I tested with PW 3.0.20 and PHP 5.6.19.  Then I then upgraded the PHP to 7.0.6.  With both PHP versions everything worked as normal.

I setup a new cron job and that is working without any problems.

 

  • Like 1
Link to comment
Share on other sites

@adrian Yes, the site is on https. Calling the standard url does not help - as the site rewrites it to https and I can't figure out how to reset it to not rewrite it ???.

As I have no need to go to PHP 7.x - it works with https and 5.5.9 perfectly - I can live with the status quo. Thanks for looking into that issue.

Link to comment
Share on other sites

Maybe this issue should be brought up the Flourish guys since that is where the error message is coming from. Perhaps the first thing to try is to replace the files in the flourishlib subfolder of this module with the latest versions from: https://github.com/flourishlib/flourish-classes

Even though there haven't been many changes in a while, this module is still using an outdated version of fMailbox.php

Would you mind replacing all these and seeing if it helps?

Link to comment
Share on other sites

Unfortunately  it didn't help, Adrian.

Looking at the Flourish web page I got the impression that this is a 'dead' project - the jungest blog entry is from 2012, also the forum has latest activities from 2013. That PHP 7 might have issues with these classes is probably not too strange. The fMailbox.php also indicates an age of 4 years.

Link to comment
Share on other sites

  • 2 months later...

Just happened across this while randomly perusing (since I love the work Jason and Pete did with this). I have an updated version of the fMailbox.php class in my github account that may solve some of these issues.

Technically speaking, the "problem" is that newer versions of PHP are much more secure, and so when connecting to mail servers it's *actually* checking validity of certificates and credentials and what-not. The quickest way to get things working is to fall back on how PHP used to work -- no security checks. My fMailbox.php version does that. It's not the best solution, but determining exactly how to get fMailbox to properly work with all variations of servers, certificates, credentials and what-not was just not working out too well for me. In terms of a good PHP mailbox checking library, I've found that Flourish seems to have one of the best even if it is primarily a dead project.

https://github.com/BrendonKoz/flourish-classes/blob/master/fMailbox.php

There have been various GitHub users that have all forked the Flourish library and provided pull requests. I've seen some and added the few fixes that (1)I hadn't already added, or that (2)didn't conflict. That said, there have been others that have been much more active in maintaining their fork than I have.

  • Like 1
Link to comment
Share on other sites

Thanks for your post @BrendonKoz - I have never actually used this module, despite contributing a fair bit of code to it, so I haven't really been pushed into finding a solution. I'd love to hear from @Werner Pilnei whether he has success with your version of fMailbox.php - if it solves his problems then it sounds like it might be the best solution for now.

Thanks again!

  • Like 1
Link to comment
Share on other sites

I haven't used it either but have thought about contributing to this particular module (since I've done work with fMailbox.php). As long as I've followed ProcessWire I still have yet to have a production website developed with it under my belt...but that will "soon" change. At that point I'll be better able to contribute.

  • Like 1
Link to comment
Share on other sites

1 hour ago, BrendonKoz said:

Just happened across this while randomly perusing (since I love the work Jason and Pete did with this). I have an updated version of the fMailbox.php class in my github account that may solve some of these issues.

Technically speaking, the "problem" is that newer versions of PHP are much more secure, and so when connecting to mail servers it's *actually* checking validity of certificates and credentials and what-not. The quickest way to get things working is to fall back on how PHP used to work -- no security checks. My fMailbox.php version does that. It's not the best solution, but determining exactly how to get fMailbox to properly work with all variations of servers, certificates, credentials and what-not was just not working out too well for me. In terms of a good PHP mailbox checking library, I've found that Flourish seems to have one of the best even if it is primarily a dead project.

I use this module on a daily basis and have no problem with it working on PHP 7.   The fact that newer versions of PHP are "more secure", to me is not a "problem" but a commendable thing.

Maybe I'm missing something, but the fact that this module is working on PHP 7.x with the changes made back in June (when I reported a problem), leads me to think that if there is any problem, it would be in the setup of the cronjob that the user @Werner Pelnei was using.  I originally had problems with the cronjob, but was able to to get it to work with PHP 7.x

/usr/bin/curl -s "https://www.mywebsite.com/?hash=aaaa----secret-hash----aaaa" >  /dev/null

This statement was what finally worked.

I just hope that the module works and doesn't circumvent needed security parameters introduced in newer PHP versions.  I don't want to have to stop relying on the functionality that this module gives me.  As I stated earlier, it works (without any needed new changes to the flourish library in the module) with PHP 7.x

Edited by cstevensjr
added additional detail
  • Like 2
Link to comment
Share on other sites

7 hours ago, Werner Pilnei said:

@adrian I am sorry but I am no longer using the module - my customer didn't want to use the functionality and so I removed it.

Thank you guys for your efforts in helping me out.

Thanks for getting back to me. 

@BrendonKoz - I think if everything is working fine for @cstevensjr as it is, then maybe we should just leave until there are issues for others - unless you feel strongly that the change should be made - in which case maybe you could elaborate so that @cstevensjr agrees that the change needs to be made. I'll leave this up to you guys to figure out if that's ok :)

Link to comment
Share on other sites

No, I actually side with @cstevensjr in not wanting to remove the added security. I do have some additional fixes that have nothing to do with the security certificate issues though, so at some point I'll probably offer those fixes as a patch to the plugin without introducing the reduced security. They primarily have to deal with fixing the way various mail clients and how they handle (or don't correctly handle) attachments and/or inline images.

  • Like 2
Link to comment
Share on other sites

  • 11 months later...

I was getting the same error as Werner Pilnei but I am using PHP 5.6.19 so can't be a PHP 7 thing. 

 

It says that it can't make a secure connection but I have Force Secure off (on POP3) in the settings so couldn't understand why it was trying a secure connection?

I added 

echo("this-secure - ".$this->secure);

just before the fsockopen command in line 963 and it came back as FALSE so that is working but when I added 

echo("this-secure".$this->secure ? 'tls://' . $this->host : $this->host);

it came back with 

tls://mail.caltd.ie

That's not right I thought and changed the line (963)

		$this->connection = fsockopen(
			$this->secure ? 'tls://' . $this->host : $this->host,

with the plain

		$this->connection = fsockopen(
			$this->host,

And it worked.

Why this Ternary Operators doesn't work here ???

But this works:

		$this->connection = fsockopen(
			$this->secure === TRUE ? 'tls://' . $this->host : $this->host,

and keeps the functionality of the Secure / not Secure.

Hope this helps.

Robert

Link to comment
Share on other sites

Hi @RDC - thanks for the update. I just took a look at the Flourish lib's github page and it looks like there is now a PHP 7 branch so maybe there is life in the project. I know you aren't using PHP 7, but I would still be curious if this new version works for you. You can grab the required flourish files here: https://github.com/flourishlib/flourish-classes/tree/php7-compat-plus-misc-fixes

Please let me know how that goes.

 

Link to comment
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
×
×
  • Create New...