Jump to content

Email New User


adrian

Recommended Posts

  • 4 weeks later...

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

  • 2 months later...
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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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();

 

Link to comment
Share on other sites

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
Link to comment
Share on other sites

  • 3 months later...
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
Link to comment
Share on other sites

  • 4 weeks later...

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

Link to comment
Share on other sites

  • 1 month later...

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
Link to comment
Share on other sites

  • 2 months later...
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
Link to comment
Share on other sites

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?

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