VirtueMart Forum

VirtueMart 2 + 3 + 4 => Virtuemart Development and bug reports => Topic started by: miggel on April 06, 2016, 13:14:26 PM

Title: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: miggel on April 06, 2016, 13:14:26 PM
Hello,

I just updated my joomla to 3.5.1 (from 3.5.0) 

So i wanted to set my order to"confirm" in the virtuemart orderlist  then i got the email error and email is not sent.

This ERROR occurd after updating to joomla to 3.5.1

please anyone please advise

Thank you   
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: lindapowers on April 06, 2016, 13:24:29 PM
I had a problem completing orders after installing 3.5.1 too, an error appeared which seems related to this one, followed Stan's quick fix and meanwhile that solved it for me:

https://www.rupostel.com/phpBB3/viewtopic.php?f=7&t=1403&sid=adbe0f8276c30cc2ec657bb235e310bd
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: jenkinhill on April 06, 2016, 13:29:25 PM
Joomla changed some code to fix a bug in 3.5 and broke compatibility with VirtueMart and at least one other third party component.  I'd revert to J3.5 until the devs can work out a patch, as any fix to VM code that is made still has to be backwards compatible with earlier Joomla versions. Stan has suggested a fix but that may not be same as the code will be introduced into the VM core by the devs.

Never update Joomla, VM or any other component/extension on a live site!
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: lindapowers on April 06, 2016, 13:35:32 PM
Quote from: jenkinhill on April 06, 2016, 13:29:25 PM

Never update Joomla, VM or any other component/extension on a live site!

I know.. but I saw 3.5.1 and read bug fix and.. you know :(

Don't know if the issue of this guy is related to the one I had but for me that fixed it meanwhile.
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: one2one on April 06, 2016, 13:57:36 PM
Hello,

After upgrade Joomla 3.5.1 today - I have checkout confirmation error. Virtuemart not confirm the order and I receive this message:

An error has occurred while processing your request.
If difficulties persist, please contact the System Administrator of this site and report the error below.

0 Invalid address:


I find the problem file after upgrade - libraries/joomla/mail/mail.php but I not understand where is the problem.

When I change the old mail.php file from Joomla 3.5.0, the problem is fixed but this is a not good solution.

Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: reinhold on April 06, 2016, 15:11:58 PM
The alternative fix to Stan's is to change the function sendVmMail in components/com_virtuemart/helpers/shopfunctionsf.php as follows:

Change (twice)

$mailer->addReplyTo( $replyTo );

to

$mailer->addReplyTo( $replyTo[0], $replyTo[1] );


Change
$mailer->addReplyTo( $replyTo );
to
$mailer->addReplyTo( $replyTo[0], $replyTo[1] );

Change
$mailer->setSender( $sender );
to
$mailer->setSender( $sender[0], $sender[1] );

This preserves the names and the email addresses.

Best regards,
Reinhold
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: jenkinhill on April 06, 2016, 15:13:19 PM
Is that backwards compatible for earlier Joomla versions?
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: stAn99 on April 06, 2016, 15:25:49 PM
hello friends, we had released a SVN patch for this and the full file mod as well:

1. full file for vm3.0.14:
http://www.rupostel.com/svn3/shopfunctionsf.php.src
2. SVN patch:
http://www.rupostel.com/svn3/patch.1459948634.svn.txt
3. further informaton:
http://www.rupostel.com/phpBB3/viewtopic.php?f=7&t=1403

i checked the VM core files and there is no more "->addReplyTo" function occurance, so it should be okay to fix it this way. i tested on j3.5.1, further tests are recommended on other J3.x versions.

best regards, stan
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: miggel on April 06, 2016, 16:03:03 PM
Thanks!

i will wait for the new patch and keep my joomla 3.5.0 runnig meanwhile

Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: jenkinhill on April 06, 2016, 16:22:54 PM
That is the patch in Stan's message. The file is http://www.rupostel.com/svn3/shopfunctionsf.php.src  - download it and remove the .src then use ftp to upload it to
components/com_virtuemart/helpers/shopfunctionsf.php   

Works for me on J3.5.1 with VM3.0.14.1
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: Topaz_gb on April 06, 2016, 17:26:27 PM
Quote from: jenkinhill on April 06, 2016, 13:29:25 PM
Joomla changed some code to fix a bug in 3.5 and broke compatibility with VirtueMart and at least one other third party component. ...
No ... Joomla updated it's code to avoid a bug in mailer.php.  And VM has not yey updated it's code to be compatible with Joomla.  The J3.5.1 rc1 and rc2 have been available for the 3rd party devs to test their extensions. http://forum.joomla.org/viewtopic.php?f=706&t=915779&p=3383595#p3383595
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: Jumbo! on April 06, 2016, 17:46:37 PM
You may also refer to this post for the solution - https://www.virtueplanet.com/forum/general-questions/22774-virtuemart-order-confirmation-page-error-after-joomla-3-5-1-update-and-solution
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: sabikeuk on April 07, 2016, 09:38:24 AM
Quote from: jenkinhill on April 06, 2016, 13:29:25 PM
Joomla changed some code to fix a bug in 3.5 and broke compatibility with VirtueMart and at least one other third party component.  I'd revert to J3.5 until the devs can work out a patch, as any fix to VM code that is made still has to be backwards compatible with earlier Joomla versions. Stan has suggested a fix but that may not be same as the code will be introduced into the VM core by the devs.

Never update Joomla, VM or any other component/extension on a live site!

Same issue, can you please advise how to revert back to Joomla 3.5.0 ? 
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: jenkinhill on April 07, 2016, 12:25:04 PM
Quote from mbabker  http://forum.joomla.org/viewtopic.php?f=710&t=917243#p3386316
Quote
Long and short, PHPMailer in Joomla 3.5.1 is less error tolerant than before and exposes a lot of incorrect uses of the mail API (including one core bug that had been present for roughly 4 years that was only patched after the error handling change). It's definitely annoying to deal with, but honestly it's a change that has to happen and folks have to make the required updates to their code. I don't know why things gave the impression they worked on 3.5.0 and earlier but some of the use cases I've seen clearly should not have meaning there was bad error handling set up somewhere.

You did not backup before the update? There is no need to revert to J3.5, you can apply one of the patches above. Or download the official patched file from http://dev.virtuemart.net/projects/virtuemart/repository/revisions/9203/entry/branches/com_virtuemart.3.0.12.4/components/com_virtuemart/helpers/shopfunctionsf.php 

VM3.0.16 with the fix is under test at the moment.
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: sabikeuk on April 07, 2016, 13:06:27 PM
Quote from: jenkinhill on April 07, 2016, 12:25:04 PM
Quote from mbabker  http://forum.joomla.org/viewtopic.php?f=710&t=917243#p3386316
Quote
Long and short, PHPMailer in Joomla 3.5.1 is less error tolerant than before and exposes a lot of incorrect uses of the mail API (including one core bug that had been present for roughly 4 years that was only patched after the error handling change). It's definitely annoying to deal with, but honestly it's a change that has to happen and folks have to make the required updates to their code. I don't know why things gave the impression they worked on 3.5.0 and earlier but some of the use cases I've seen clearly should not have meaning there was bad error handling set up somewhere.

You did not backup before the update? There is no need to revert to J3.5, you can apply one of the patches above. Or download the official patched file from http://dev.virtuemart.net/projects/virtuemart/repository/revisions/9203/entry/branches/com_virtuemart.3.0.12.4/components/com_virtuemart/helpers/shopfunctionsf.php 

VM3.0.16 with the fix is under test at the moment.
Quote from: jenkinhill on April 07, 2016, 12:25:04 PM
Quote from mbabker  http://forum.joomla.org/viewtopic.php?f=710&t=917243#p3386316
Quote
Long and short, PHPMailer in Joomla 3.5.1 is less error tolerant than before and exposes a lot of incorrect uses of the mail API (including one core bug that had been present for roughly 4 years that was only patched after the error handling change). It's definitely annoying to deal with, but honestly it's a change that has to happen and folks have to make the required updates to their code. I don't know why things gave the impression they worked on 3.5.0 and earlier but some of the use cases I've seen clearly should not have meaning there was bad error handling set up somewhere.

I have usued Akeeba backup before update. I have solved issue by replacing file http://www.rupostel.com/svn3/shopfunctionsf.php.src

I have another issue, I cant access home page http://www.estilofina.sk/ -  just blank, I can access site via a categoty link  e.g. http://www.estilofina.sk/velkonocny-vypredaj

Any idea ?
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: dimi2013 on April 08, 2016, 09:02:24 AM
A big thank you to all who participated in bringing this issue to light and providing a fix. It helped me out tremendously. You folks are A-W-E-S-O-M-E!
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: Anna_Bolika on April 11, 2016, 12:22:53 PM
Quote from: reinhold on April 06, 2016, 15:11:58 PM
The alternative fix to Stan's is to change the function sendVmMail in components/com_virtuemart/helpers/shopfunctionsf.php as follows:

Change (twice)

$mailer->addReplyTo( $replyTo );

to

$mailer->addReplyTo( $replyTo[0], $replyTo[1] );


Change
$mailer->addReplyTo( $replyTo );
to
$mailer->addReplyTo( $replyTo[0], $replyTo[1] );

Change
$mailer->setSender( $sender );
to
$mailer->setSender( $sender[0], $sender[1] );

This preserves the names and the email addresses.

Best regards,
Reinhold

There's no need to change the 'setSender'-call, that one is still valid.
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: JacoboPS on April 11, 2016, 13:04:07 PM
Quote from: one2one on April 06, 2016, 13:57:36 PM
Hello,

After upgrade Joomla 3.5.1 today - I have checkout confirmation error. Virtuemart not confirm the order and I receive this message:

An error has occurred while processing your request.
If difficulties persist, please contact the System Administrator of this site and report the error below.

0 Invalid address:


I find the problem file after upgrade - libraries/joomla/mail/mail.php but I not understand where is the problem.

When I change the old mail.php file from Joomla 3.5.0, the problem is fixed but this is a not good solution.

Well, the patch they refer here for Joomla 3.5.1 and VM 3.0.14 didn't work for me. So, on the meanwhile, I have adopted your patch while I wait for the VM 3.0.16 or find another solution (I have some sort of problem with Joomla upgrade, I still get the "Joomla! 3.5.0 is available: Update Now" message and I have the 3.5.1 running.
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: brentonking on April 14, 2016, 02:59:59 AM
Just an additional note (if it hasn't already been mentioned). This same issue also caused a problem with the "Register & Checkout" button, where the user is redirected to MYSITE/shop/user, but receives "0 - Invalid address" message.

The shopfunctionsf.php patch also fixed this issue for me. I do believe I had to update to Virtuemart 3.0.14 for the issue to be sorted too.
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: jenkinhill on April 14, 2016, 12:19:02 PM
VM3.0.16 has been avaiolable for a couple of days now.  http://dev.virtuemart.net/projects/virtuemart/files
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: stAn99 on April 14, 2016, 15:22:23 PM
hello friends, we had compared all modifications in shopfunctionsf.php since vm3.0.0 to the latest 3.0.16 and created a version that is backward compatible with all of the prior VM versions in case you wanted to run it on latest Joomla 3.5.1 and later

the file can be downloaded from:
http://www.rupostel.com/svn3/shopfunctionsf.php.allversions.src

upload to your /components/com_virtuemart/helpers/shopfunctionsf.php

we also created an installable zip package for joomla that overwrites the core shopfunctionsf.php
http://www.rupostel.com/svn3/shopfunctionsf_joomla_installer.zip

merges include all changes from versions of :
VM3.0.0, 3.0.2, 3.0.4, 3.0.6.2, 3.0.8, 3.0.9.6, 3.0.12, 3.0.13.2, 3.0.14, 3.0.16

best regards, stan
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: grimeshenry on May 09, 2016, 11:00:49 AM
Hi There

I am using Joomla 3.5.1 and VM 3.0. and still getting "ERROR: 0 Invalid address:"
after getting new file shopfunctionsf.php

Please Help
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: Milbo on May 09, 2016, 11:47:21 AM
Just use the shopfunctionsf.php of the vm3.0.16
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: GJC Web Design on May 09, 2016, 19:24:28 PM
Just a heads up

fixed a J3.5.1/VM3.0.16 install today still showing the "ERROR: 0 Invalid address:" and turns out it was because he had messed up his vendors so the reply to email was missing and throwing this exact same error -- so not always this (above) reason causes this problem
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: oneyozfest182 on May 12, 2016, 20:51:26 PM
Quote from: jenkinhill on April 07, 2016, 12:25:04 PM
VM3.0.16 with the fix is under test at the moment.

I'm on Joomla 3.5.1 and VM 3.0.16 and still having this error. :( Orders show up in VM but no e-mail is dispatched and the customer gets an error message

QuoteThe requested page can't be found.

An error has occurred while processing your request.

You may not be able to visit this page because of:

    an out-of-date bookmark/favourite
    a mistyped address
    a search engine that has an out-of-date listing for this site
    you have no access to this page

If difficulties persist, please contact the System Administrator of this site and report the error below.

    0 Invalid address:
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: jenkinhill on May 12, 2016, 20:54:36 PM
Quote from: GJC Web Design on May 09, 2016, 19:24:28 PM

fixed a J3.5.1/VM3.0.16 install today still showing the "ERROR: 0 Invalid address:" and turns out it was because he had messed up his vendors

Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: oneyozfest182 on May 12, 2016, 21:00:50 PM
How can I go about working toward a fix? My vendor profile has an e-mail address entered into their profile. :-\

I do have the following "warning" in Joomla:

QuoteThe PHP temporary folder is not set.
The PHP temporary folder is the folder that PHP uses to store an uploaded file before Joomla can access this file. Whilst the folder not being set isn't always a problem, if you are having issues with manifest files not being detected or uploaded files not being detected, setting this in your php.ini file might fix the issue.

Could this be any part of the issue?

UPDATE [SOLIVED]: If anyone is still having troubles, please make sure in your Global Config > Server your From email and From Name are NOT blank!
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: medmantra on May 13, 2016, 06:50:52 AM
Hello,

I have J3.5.1 and VM3.0.16.
Even after applying the above-mentioned fixes and making sure that vendor has email and name (full profile) set up I am getting 0 invalid address error.
My Joomal Admin > Global Config > System does not have "From email" and "From Name" fields. Where exactly am I supposed to look for these?
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: medmantra on May 13, 2016, 07:08:47 AM
I found it.

It is here:

Joomla Admin > Global Config > Server

and the from email and from name fields are filled and valid.

Any other reasons for the 0 Invalid Address Error?
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: GJC Web Design on May 13, 2016, 22:18:17 PM
the case I fixed the vendor email was missing because of various vendor config cockups

to find echo out mailer stuff in the helpers/shopfunctionsf.php .. the send mail function .. to find whats missing
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: medmantra on May 20, 2016, 18:16:33 PM
Hello,

I replaced 3.5.1 mail.php with that of 3.5.0 and it worked. (libraries/joomla/mail/mail.php).
Now there are no errors in paypal checkout, emails are sent to vendor and customer and order is confirmed.
But I am still getting a notice on return invoice page:
"Notice
You must provide at least one recipient email address."

What may be causing this?

@ GJC Web Design:
Can u please elaborate on this especially the second sentence?
"the case I fixed the vendor email was missing because of various vendor config cockups
to find echo out mailer stuff in the helpers/shopfunctionsf.php .. the send mail function .. to find whats missing"
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: melingmeier on May 21, 2016, 00:09:38 AM
I updated Joomla to 3.5.1, virtuemart from 3.0.11.4 to 3.0.16 and activated php7. Everything works fine, the only thing that doesn't work is if I try to switch the order status from any status to "confirmed". If I do so I get an joomla error: "Es ist ein Fehler aufgetreten! 1 Could not access file: 0" "An error occurred! 1 Could not access file: 0" Any idea what went wrong?
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: GJC Web Design on May 21, 2016, 17:54:08 PM
My reply was to just let u know that even though the forum is full of "0: invalid address" related to the recent J3.5.1 update this error is also a very general one that could be related to any email failure
It is only saying that one of the email addresses is missing (sender or recipient) - and this can be caused by many things

So the investigation needs to be where and why an email address is missing

In the case I mentioned the vendor email was missing at the vm mail helper.. there was at least 3 vendors specified (it was a migration)
by clearing the lot, making a new superadmin, logging it into VM and assigning as store owner it all came right
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: YZF on May 27, 2016, 21:13:33 PM
Thank you "stAn99" and everyone else that posted. The two files I downloaded from your post worked great. Very much appreciated.
Title: Re: After updating to joomla 3.5.1 virtuemart 3.0.14 emails no working
Post by: saraheagle on June 09, 2016, 17:47:34 PM
The update does not seem to fix the "Send to a friend" or the "Ask a Question" emails.
I think we need to change the code a bit to something like this, does anyone have an easy way of getting the vendor email/name/id?

if(isset($view->orderDetails['details']) && isset($view->orderDetails['details']['BT'])) {
            $replyTo[0] = $view->orderDetails['details']['BT']->email;
            $replyToName[0] = $view->orderDetails['details']['BT']->first_name . ' ' . $view->orderDetails['details']['BT']->last_name;
         } else {
            if(isset($view->user->email) && $view->user->name) {
               $replyTo[0] = $view->user->email;
               $replyToName[0] = $view->user->name;
            }
            elseif (isset ($view->vendor->vendor_name)) {
               $replyTo[0] = $view->user['email'];
               $replyToName[0] = $view->user['name'];
            }
            else {
               //coming from send to a friend or ask a question, so no order details
               //get vendor email from config / db
            }
         }

Thanks