Start a new topic
Answered

Email not received for Password reset option

hello there, i am new on using kinvey for android.

i have implemented the reset password functionality. 
but the email with the link to reset password is not received even the onSuccess method is getting called. i am pasting the code as well,, what am i missing here?


@Override
public void sendPasswordResetEmail(Context context, String email, final RestPasswordEmailCallback callback) {
UserStore.resetPassword(email, client, new KinveyUserManagementCallback() {
@Override
public void onSuccess(Void unused) {
callback.onEmailSentSuccess(new SendResetPasswordEmailResponse());
}
@Override
public void onFailure(Throwable error) {
callback.onEmailSentError(new Error(-1, error.getMessage()));
}
});
}



Best Answer
Kinza,

There has been some misunderstanding from our side. We apologize for the confusion.

In your earlier comment, you asked "i wanna ask that is this step necessary for receiving the mail.

myClient.push(GCMService.class).initialize(getApplication());". The answer to you question is NO. 'Password Reset' and 'Push' are different functionalities. You don't need to call 'myClient.push' for receiving 'Reset Password' mails.



Few questions for you:


  1. If you check this link, it is mentioned that the user must have a valid email set in the email attribute on User collection/backend. If you are storing email data in username column then you will not receive any mails. When you call 'UserStore.resetPassword' method by providing an email id, Kinvey will search that email id in user collection's 'email' column and send the 'Reset Password' mail accordingly. In your user collection, are you storing email ids in 'username' column or 'email' column?
  2. Can you please check Spam Folder and see if 'Reset Password' mails are going there?
  3. You can also test 'Reset Password' functionality from Kinvey API console. Please check Password Reset using REST. Can you try resetting password from API console and let me know if you receive any email?
  4. Do you have any collection hooks running for User collection?


Let me know if it helps.




Thanks,

Pranav

Kinvey

 


Hello Binex Solutions,


Thank you for reaching out to us. I can see that your password reset requests are making it to Kinvey and are being processed successfully. However, that's just from the backend point of view. We now need to check the email service to determine how the outbound email with the link to reset the password was handled.


In a private email to billy@kinvey.com, please send me the email address and the _id from the Users Collection of one or more of the password reset emails that are not being received by the end user. In fact, it would be ideal if you could initiate another password reset, send the requested information, and note the timestamp of when you initiated the password reset including timezone.


I assume that from your application's point of view, the password reset "appears" to have worked correctly even though the email was not received by the end user. Is that correct?


I look forward to receiving the email from you.


Regards,


Billy Gee

Kinvey Support

Hello Kinza,


I reviewed your application configuration details and discovered that it has not yet been configured for Android Push Notifications. This has to be done first before any devices can be registered for push and before any push notifications can be sent.


Please review the push documentation at the following URL which explains how to configure your application to send Android devices push notifications.


https://devcenter.kinvey.com/android/guides/push


We hope this helps. Please let us know if we can provide further assistance.


Regards,


Billy Gee

hey!

you asked me to configure my app for push notifications and provided me with the link. 
i wanna ask that is this step necessary for receiving the mail.


myClient.push(GCMService.class).initialize(getApplication());

because its requirement is that it should a user logged in. But in my app, the forgot option is placed at a point when no user is logged in. its placed in sign in screen. (at a point where the user is not currently logged in)

Hello Kinza,


Yes, the following line of code is absolutely necessary in order to register your device successfully for push.


myClient.push(GCMService.class).initialize(getApplication());


There is no way around this. Without executing this function when the user wants to register for push, subsequent push notifications will not be sent to that device.


We hope this helps.


Regards,


Billy Gee


Hey there, 

Its requirement is that there should be an active user..
But how a user can be active when he forgot his password?

Answer
Kinza,

There has been some misunderstanding from our side. We apologize for the confusion.

In your earlier comment, you asked "i wanna ask that is this step necessary for receiving the mail.

myClient.push(GCMService.class).initialize(getApplication());". The answer to you question is NO. 'Password Reset' and 'Push' are different functionalities. You don't need to call 'myClient.push' for receiving 'Reset Password' mails.



Few questions for you:


  1. If you check this link, it is mentioned that the user must have a valid email set in the email attribute on User collection/backend. If you are storing email data in username column then you will not receive any mails. When you call 'UserStore.resetPassword' method by providing an email id, Kinvey will search that email id in user collection's 'email' column and send the 'Reset Password' mail accordingly. In your user collection, are you storing email ids in 'username' column or 'email' column?
  2. Can you please check Spam Folder and see if 'Reset Password' mails are going there?
  3. You can also test 'Reset Password' functionality from Kinvey API console. Please check Password Reset using REST. Can you try resetting password from API console and let me know if you receive any email?
  4. Do you have any collection hooks running for User collection?


Let me know if it helps.




Thanks,

Pranav

Kinvey

 

Issue got resolved by storing the email id in email column. 
Previously i was storing it username column

Thankyou so much for your quick response and help. 

Login or Signup to post a comment