4

I submitted a support request to Mighty Big Robot, but I could use all the help I can get, so I'm posting here, too.

The activation email is not being sent after registration form submission. The form submits successfully, and the user is added to the “Pending” member list, but no activation email is sent. Here is the registration template:

{exp:profile:register 
  include_jquery='no' 
  safecracker_head='no' 
  return='notifications/submission-success/register' 
  group_id='5' 
  json='yes'
  class='member-register' 
  rules:age='required' 
  rules:email='required|valid_email' 
  rules:member_first_name='required' 
  rules:member_last_name='required' 
  rules:screen_name='required' 
  rules:password='required' 
  rules:terms='required' 
  activation_return='profile/registration-complete'
}
  <div class="fieldgroup form-select register age">
    <label for="age">Your Age<span>*</span></label>
    <div>
        <select name="member_age_range" id="age" class="required">
            <option value="">Select your age range</option>
            <option value="18-29">18-29</option>
            <option value="30-39">30-39</option>
            <option value="40-49">40-49</option>
            <option value="50-59">50-59</option>
            <option value="60-69">60-69</option>
            <option value="70 or Over">70 or Over</option>
        </select>
        <p class="small">You must be 18 or over to register.</p>
    </div>
  </div><!--/.row.form-select-->

  <fieldset class="display">
    <div class="fieldgroup five columns">
      <label for="first-name">First Name<span>*</span></label>
      <input type="text" name="member_first_name" id="first-name" class="required">
    </div><!--/.five-columns-->

    <div class="fieldgroup five columns">
      <label for="last-name">Last Name<span>*</span></label>
      <input type="text" name="member_last_name" id="last-name" class="required">
    </div><!--/.five.columns-->

    <div class="fieldgroup ten columns">
      <label for="address-1">Address 1</label>
      <input type="text" name="member_address" id="address-1">
    </div><!--/.ten.columns-->

    <div class="fieldgroup ten columns">
      <label for="address-2">Address 2</label>
      <input type="text" name="member_address2" id="address-2">
    </div><!--/.ten.columns-->

    <div class="clearfix">
        <div class="fieldgroup five columns">
          <label for="city">City</label>
          <input type="text" name="member_city" id="city">
        </div><!--/.five.columns-->

        <div class="fieldgroup five columns">
          <label for="state">State</label>
          <select name="member_state" id="state"> 
            <option value="">Select</option>
            {exp:reegion_select:states}
              <option value="{region_alpha2}">{region_name}</option>
            {/exp:reegion_select:states}
          </select>
        </div><!--/.five.columns-->
    </div><!--/.clearfix-->

    <div class="fieldgroup five columns">
      <label for="zip">Zip Code</label>
      <input type="text" name="member_zip" id="zip">
    </div><!--/.five.columns-->
  </fieldset>

  <fieldset>
    <div class="fieldgroup">
      <label for="screen-name">Screen Name<span>*</span></label>
      <input type="text" name="screen_name" id="screen-name" class="required">
      <p class="small">This is the name that will show when you share your comments.</p>
    </div>

    <div class="fieldgroup">
      <label for="member-email">Your Email<span>*</span></label>
      <input type="email" name="email" id="member-email" class="email required">
    </div>

    <div class="fieldgroup">
      <label for="email-confirm">Repeat Email<span>*</span></label>
      <input type="email" name="email_confirm" id="email-confirm" class="email required" equalto="#member-email">
    </div>

    <div class="fieldgroup">
      <label for="member-password">Password<span>*</span></label>
      <input type="password" name="password" id="member-password" class="required password">
    </div>

    <div class="fieldgroup">
      <label for="password-confirm">Repeat Password<span>*</span></label>
      <input type="password" name="password_confirm" id="password-confirm" class="required password" equalto="#member-password">
    </div>
  </fieldset>

  <fieldset>
    <div class="fieldgroup inline-checkbox">
      <input type="checkbox" name="accept_terms" id="terms" class="required">
      <label for="terms">I agree to the <a href="{path='privacy-policy-and-terms-of-use'}" target="_blank">terms and conditions</a></label>
    </div><!--/.inline-checkbox-->
  </fieldset>

  <div class="hp">
    <label for="beep">Don't type anything here.</label>
    <input type="text" name="beep" id="beep">
  </div><!--/.hp-->

  <input type="submit" value="Register" class="button">

{/exp:profile:register} 

Everything was working great on the dev server, but then we pushed to the live server and it stopped working. The biggest difference between the two servers is the live server has an SSL certificate installed, not sure if that’s relevant.

I sent a test email from the communicate tab, and that went through with no problems.

  • Profile:Edit 1.0.7
  • EE 2.5.5
4
  • 1
    I don't have an answer, but I know that Profile:Edit is now at 1.0.8 despite not apparently publicising that fact anywhere. Re-download it to get the newer version. I'm using Postmaster and some custom add-ons to do something very similar. Postmaster is great because you can see if an email was sent successfully by checking the DB, so can narrow down the problem to the recipient's ISP blocking it. Feb 1, 2013 at 17:18
  • I purchased the Profile:Edit license on Devot:ee, and it looks like I can still only get 1.0.7. Did you get your license directly from MBR?
    – kmgdev
    Feb 1, 2013 at 17:23
  • yes, downloaded from MBR and it arrived as 1.0.8 Feb 1, 2013 at 17:31
  • "no activation email is sent" Are you sure that's the case? Or is no email being received? Sometimes a recipient server will deny an inbound email. Feb 5, 2013 at 19:57

3 Answers 3

1

I had a similar issue with Zoo:Visitor and my production install. This may not be the complete answer, but I highly recommend signing up for a Mandrill account and setting your server to send using SMTP settings from Mandrill. I too was able to send emails via the communication tool, yet my member notifications weren’t going throguh. Once I used a transactional delivery system, my problems disappeared. I’m still not 100% certain what was the cause on our server, but it should at least get you up and running.

1

I sent a test email from the communicate tab, and that went through with no problems.

This is the confounding part, because they should be using the same system. Are they really not sending? Or are they not being received? The recipient server may be rejecting them.

If you have a Gmail account handy, I'd recommend setting up the Control Panel to send through Gmail. At least then you could truly test that the emails are not sending, because you'll see copies in your sent folder if they send.

In addition to setting ssl://smtp.gmail.com as your SMTP Server Address, to use Gmail you'll need to hack system/codeigniter/system/libraries/Email.php as follows:

//var $smtp_port     = "25";      // SMTP Port
var   $smtp_port     = "465";      // SMTP Port
var   $newline      = "\r\n";      // Default newline.
var   $crlf         = "\r\n";      // The RFC 2045 compliant CRLF
//var $newline      = "\n";      // Default newline.
//var $crlf         = "\n";      // The RFC 2045 compliant CRLF

See if all your emails are getting out through Gmail. If they are, then there's something blocking them on the recipient side. If they aren't, you'll need to troubleshoot your server.

In your add-ons, in profile/models/profile_model.php, there's a send_email function. I'm guessing that's the place to look. Instead of return, try doing an echo on the function that sends the email. It might give you back an error. You'll need to follow that with exit(); or the server will just continue on with the code & redirect without you seeing the echo.

When we launch sites, I urge clients to set me up with a mail server account to use SMTP instead of PHP Mail. Installing Postfix on a server or using built-in email options is straightforward enough, but it's one more thing to maintain/troubleshoot and you risk your web server's IP being flagged if there's ever an issue with emails originating there.

1

From MightyBigRobot Support:

Recently EE updated its secure forms systems, to use a completely different method.

Profile:Edit has been updated to 1.0.9 which addresses this problem.

Unfortunately they haven't updated the software version on Devot:ee yet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.