Jump to content

Recommended Posts

  • 4 weeks later...
Posted

Hi.

First of all, thanks for this great module! 
I do have one question: Is there a reason why this module is not "singular"?
To be clearer: adding ""singular": true" to the jsonfile.

I am having the automatic send option enabled, and use some custom api code to add new users in frontend-scope and backend.
According to the json info file the module gets autoloaded on "template=admin". So in Frontend I have to use $this->modules->get("EmailNewUserPortal");

Because my custom code gets executed in frontend and admin, I would have to check where I am, because if I do $this->modules->get("EmailNewUserPortal"); in backend there are two instances of the module running. This results in sending the NewUser Mail twice.

After adding the singular Option to your module, this issue has gone.
Perhaps there is another need to be not singular here wich I didn´t see? Just wanted to ask...

Thanks...

 

  • Like 2
Posted
On 9/26/2016 at 4:49 AM, benbyf said:

found this in the wiremail logs

  Error in hnsmtp::send : cannot connect to smtp-server!

Sorry I missed this post, but I am hoping by now you have realized that this is an issue with your wireMail setup and not this module.

 

On 10/25/2016 at 3:42 AM, gingebaker said:

I do have one question: Is there a reason why this module is not "singular"?

Just an oversight on my part - thanks for the heads up and the solution - much appreciated.

It is fixed now!

 

  • Like 3
  • 2 months later...
Posted

Hi @Timothy de Vos - I could simply support HTML in that email body field and have the email sent as HTML along with a plain text version (automatically generated from the HTML version). I think that would be the easiest approach.

Would that suit your needs?

  • Like 1
Posted
2 minutes ago, adrian said:

Hi @Timothy de Vos - I could simply support HTML in that email body field and have the email sent as HTML along with a plain text version (automatically generated from the HTML version). I think that would be the easiest approach.

Would that suit your needs?

Jeah i guess that would work!

Posted
Just now, Timothy de Vos said:

Jeah i guess that would work!

You don't sound thrilled :)

Do you have any other ideas / preferences?

I could add support for pulling in a template stored in the file system, but I feel like that might be overkill for a simple email like this - I can't see it requiring very much structure/styling for a simple account registration email.

Posted
1 minute ago, adrian said:

You don't sound thrilled :)

Do you have any other ideas / preferences?

I could add support for pulling in a template stored in the file system, but I feel like that might be overkill for a simple email like this - I can't see it requiring very much structure/styling for a simple account registration email.

Sorry... I mean that would be perfect! :)

And you're right it doesn't need much styling. I just like it to have the same feeling as the rest of the website.

Right now i've added a little extra code to have an extra option like {adminURL}. I'm registrating users that only work on the front-end. Each user is bound to a location and for the front-end login url I need the parent name of the location. So for now i added this extra code to the parseBody function:

  elseif($field == "location") {
      $pageId = $page->$field;
      $replacement = "http://".wire($pageId)->parent->name.".".wire('config')->httpHost;
  }

i don't know if there is an other easier way to do this?

Posted

I have committed a new version which:

  • adds a new "From Name" field setting so that the email new users receive comes from your name/email, not just a raw email address.
  • adds support for HTML body text. A plain text version will be generated automatically from this and both sent with proper headers.
  • makes the parseBody method hookable, so you can define more complex field tag replacements.
    For example, this will accomplish @Timothy de Vos's needs:
$this->wire()->addHookBefore('EmailNewUser::parseBody', null, function($event) {
	$page = $event->arguments[2];
	$pageId = $page->location;
    $replacement = "http://".wire($pageId)->parent->name.".".wire('config')->httpHost;
	$event->arguments(0, str_replace('{location}', $replacement, $event->arguments[0]));
});

 

Please let me know if you have any problems with this new version!

Thanks to Timothy for helping to test this new version and as he noted, if you want full HTML support in the supplied CkEditor body input, you'll need to set:

config.allowedContent = true
  • Like 1
Posted

I've just upgraded to the latest version (0.3.1) from a previous version which was working OK. I'm now getting the following error when trying to send the test email from admin (this previously worked):

Call to a member function new() on a non-object (line 158 of ***/site/modules/EmailNewUser/EmailNewUser.module) 

I see from the file in question that it's doing things with the password a that point but I'm not using the password generator at that point.

BTW, the site is running PW v2.7.2

Any ideas?

Posted
41 minutes ago, prestoav said:

I've just upgraded to the latest version (0.3.1) from a previous version which was working OK. I'm now getting the following error when trying to send the test email from admin (this previously worked):


Call to a member function new() on a non-object (line 158 of ***/site/modules/EmailNewUser/EmailNewUser.module) 

I see from the file in question that it's doing things with the password a that point but I'm not using the password generator at that point.

BTW, the site is running PW v2.7.2

Any ideas?

I think the issue might be the PW version. I started using $mail->new() which I think maybe wasn't available in that version. Could you please clarify that it works if you change that line to:

$mailer = wireMail();

 

Posted
54 minutes ago, prestoav said:

Hi, the error no longer appears but the test email never arrives.

Please try the version I just committed - I have just tested here on PW 2.7.2 and it's working fine.

Note that I am using horst's WireMailSMTP module, but I don't think that should matter.

  • Like 1
Posted

Hi Adrian,

Yup, that now works perfectly, thanks for such a speedy response!

As it happens I'm also using Horst's WIreMailSMTP :-)

Geoff.

  • Like 1
Posted
1 minute ago, prestoav said:

Yup, that now works perfectly, thanks for such a speedy response!

As it happens I'm also using Horst's WIreMailSMTP :-)

Excellent - sorry about the new bug in the first place :)

  • 3 months later...
Posted
12 hours ago, Peejay said:

Hi,

Does anyone know if it's possible to set the "Email Body" in multiple languages?

It is now - please check the latest version just committed.

It now support ML subject and body fields and the user will receive the version associated with the language that you set in their profile.

Let me know if you find any problems.

  • Like 4
  • 4 weeks later...
Posted

Hi!
Great module - thanks for this, adrian!
Is there any possibility to send this user-email to admin at the same time ( without using another module )?
Thanks!!

Posted

@itsberni,

Unless I misunderstand, you should set Bcc to the admin email prior to sending. The email copy will be sent in the same language. If you want the admin to receive the email in a different language, then you will have to repeat the process a second time addressing the email only to admin, and in their language.

Posted

Hi @itsberni,

I apologize. I just looked at the module and there is no Bcc option. As it is, you might try appending the admin email to the To address.

  • 1 month later...
Posted

Hi @itsberni - sorry for such a delayed response - I am just back from an extended time away from my computer.

I have added a new Bcc email field to the module config settings. All emails will be Bcc'd to the entered address automatically.

Please let me know how it goes for you.

 

  • Like 3
  • 2 months later...
Posted
On 04/07/2017 at 10:47 PM, adrian said:

I have added a new Bcc email field to the module config settings. All emails will be Bcc'd to the entered address automatically.

 

Thanks for implementing the Bcc field, @adrian! It works great on sites using WireMailSmtp.

However, on a site using the default WireMail implementation, the bcc() call will fail and abort the whole process. It seems the default WireMail interface does not (yet) have bcc() defined while it is available in WireMailSmtp and others.

I'd suggest doing a simple check for the bcc function. For that particular project, I have successfully used the following to fix it. Instead of (line 177):

if($this->data['bccEmail'] != '') $mailer->bcc($this->data['bccEmail']);

I inserted:

if($this->data['bccEmail'] != '') {
  if (method_exists($mailer, 'bcc')) {
    $mailer->bcc($this->data['bccEmail']);
  }
  else {
    $mailer->to($this->data['bccEmail']);
  }
} 

Since the default WireMail will send each to() recipient as a separate mail, the second to() call acts as a de facto bcc address. Maybe that will be enough, maybe you can think of a more sophisticated way of solving it.

  • Like 1
Posted

Hi @d'Hinnisdaël - thanks for noticing this issue and putting together a fix. I am actually wondering if there is actually any point in using the bcc option even when it's available. Maybe I should just relabel it as "Notify other admin users" and make use of additional "To" email addresses. Maybe it should even support a comma-seperated list in case you want to notify more than one user.

Any thoughts on this before I implement?

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...