Cannot send Email Confirmation to certain email providers - email

I have a Liferay 6.1.0ga1 Portal that requires email confirmation from new registered users.
Following my feedback from the Portal users, and testing with misc Email Providers I've noticed:
Users that use a gmail account for their account, have no problem at all
Hotmail users will receive the 'welcome to our portal' and 'Email confirmation' emails, directly into their junk folder
Yahoo users are receiving most of the sent emails (welcome email, reset pasword, etc) normally, but the email confirmation is never received, and cannot be found even in their Spam Folder. The same happens for every request for a new confirmation mail. In a certain case, the Confirmation email arrived a few hours later, but I cannot really reproduce this scenario.
This is becoming a blocker issue because yahoo users can't register to the portal.
Can anyone provide some ideas on what is causing this behavior, and how could I make sure that all users can receive their confirmation emails ?
Edit:
Could it be that certain email providers are using a strict policy, are blocking the Confirmation Email, because it includes an activation email? I've thought of some solutions like
- Creating a register Hook that informs the new users that they could set their account to accept mails from my Portal
- Creating a hook that will use another Email Template for email confirmation, e.g including the confirmation Token and excluding the activation url

You could take a look at this very old question: How do you make sure email you send programmatically is not automatically marked as spam?
So have you tried the mentioned options in the marked answer there?

Related

(Google Workspace) Email not being received from one sender only

I have a Google Workspace (I think that is what it is called) that I use to manage a private email address for a small business.
Everything has been working fine, and I can see the user (richard) in the admin area with associated email set up. I have sent test emails to and from their email account to make sure it is working okay and everything seems to be working fine.
I have two email addresses associated with the domain, for example:
emma#domain.co.uk (me) and
richard#domain.co.uk (richard)
I use the first email address as an admin account, and they use the second one.
They've had this email account for a long time, and have had no problems, however recently they have stopped receiving emails from one sender (their accountant).
I can still send emails to the account from my own personal email address to them, and they are receiving emails from other businesses, but just this one person is sending emails to them and they aren't being received.
Things I've tried:
Checked the spam/junk folders and no emails are there
Checked to make sure the sender isn't on the blocked list
Looked at the email logs as per this suggested article and don't see any record of the incoming email that has been sent
Sent a test email to account#accountant.co.uk and richard#domain.co.uk from emma#domain.co.uk and they both receive my email. When the accountant presses "reply all" the email only gets received by emma#domain.co.uk and never arrives at richard#domain.co.uk
Sent a test email from richard#domain.co.uk to account#accountant.co.uk and she receives the email. When she replies, he doesn't get the reply.
All I can think of is she has somehow blocked him via her email client, but I need to check out all the possibilities of it being a problem at our end as she's not great with email and not sure how I'm going to navigate that one :)
Any suggestions welcome!

Flutter - No Long Receiving Firebase Emails [duplicate]

I am new to firebase and I am trying to handle firebase user authentication in React.js. I did manage to create users with email and passwords. But, now I would like to send the user an Email link to reset their password.
My code currently look like this.
// This line of code belongs to the top
import { auth } from '../firebaseConfig'
//This part goes under the React component
<p onClick={async () => {
try{
await sendPasswordResetEmail(auth, // My Email Id)
alert('Password reset link has been sent to your email')
}
catch(err){
alert(err)
}
}}
>Forgot your Password ?</p>
However, I do not get any error messages and I do get the alert message that says "Password reset link has been sent to your email." Unfortunately, I didn't receive any email. Note that I have given my own email id as the parameter for testing purposes.
firebaser here
Did you check your spam folder? We recently see a lot of the emails from Firebase Authentication ending up in the user's spam folder or being marked as spam in a system along the way. This is being tracked in this status message on the Firebase dashboard and in public issue #253291461.
To reduce the chances of the messages getting marked as spam, consider taking more control of the email delivery yourself.
As a first step, consider using a custom domain with your project. Email that comes from a custom domain has less chance of being marked as span.
As a second step, consider setting up your own SMTP server.) for delivering the email, so that the emails are not being delivered from Firebase's shared infrastructure anymore.
While these steps are more involved, they typically will drastically reduce the cases where the messages from Firebase Authentication are marked as spam.
Full Guide Based on Frank's Answer
Firstly create a new email account you can use to relay the Firebase emails through the SMTP server with. I personally chose Gmail, but I tested with Outlook and it also works.
You can now find an SMTP server host that will work for your scenario. If you're sending less than 1000 emails per month you can find free and reliable hosts. I chose SMTP2GO's free option.
Now you've found the SMTP host, add the email address you've chosen as a single sender email (note that if you do own a domain, you can alternatively use that to send emails).
Note that you will have to verify the email, usually by your host sending a link to the email's inbox. Make sure to check spam.
Once verified, navigate to where you host allows you to add SMTP Users and add a new user. This will allocate an SMTP username and password.
Navigate to the Firebase console, and choose the Authentication option from the sidebar (within the Build product category).
Go to Templates → SMTP Settings and enter the details of your SMTP server. The username and password fields are to be filled with the SMTP user login you created in the step above.
It is better to use TLS, but I believe SSL should work too but it is untested.
Click save, and you're all set up - but there may still be steps to perform depending on your email provider.
Provider Specific Steps
If the emails are being sent to an account managed by Google you will have no issues with your emails being quarantined by anti-spam policies and it will work immediately.
If you are using Outlook, you will have a different problem on your hands. Outlook's built in defender will most likely have auto-quarantined your email under multiple policies - that bit is important.
These policies are likely to be both spam and phish policies. If you unblock one of them, the other will catch it and re-quarantine.
Unblock both policies for the email address, and test. You can see the status of quarantined messages in Microsoft 365 Defender app under Review → Quarantine. Please note that you will need to be an administrator to add global allow policies to your email accounts.
If this still doesn't work it is likely that your company has an additional external filter (as mine did), and you will have to add the IP's manually to the Tenant Allow/Block Lists spoofed senders tab.

Detecting if emails send by our application is marked as spam

We are developing an application that will send periodic updates and notifications to users as email. The user can opt-in and opt-out of this service via a subscribe option. However we are finding that some users are making the email as spam and as a result our account is getting suspended... Is there any way to track if our emails has been marked as Spam by a user, so that we can stop sending emails to them...
We have a GSuite service and are using Gmail SMTP to send emails
No.
But you can check if your domain is on any blacklist with tools like mxtoolbox.com. And contact those blacklists with the question what you could do to be removed from the list.
In order for a mail to be classified as spam it has to fail a multitude of tests maybe your mails have specific words in the title or the senders address is way to weird or the header is getting corrupted in a certain way or and maybe that's your problem: many people are custom filtering your emails as junk/spam.

Quickblox, send email to new users to validate email address

I'm new to quickblox MBaas and I would like to send out an email (to verify e-mail address) to a specific user when he signed up. Is there a standard procedure for this or a way to do this in Quickblox. Many thanks for your help.
There is no a way to do this for API users right now.
The cause of this solution is that it's quite hard sometimes for mobile users to verify an email. Just imagine a situation where user doesn't have a ready for use mail client on his device - then there is no a way to verify an email in this situation.
Other cause is that email verification can complicate your onboarding process.
It's possible to send a greetings email. You can setup it in Admin panel, Users module, Settings tab

How do I make the Drupal default From: e-mail different than the email of the user who receives system e-mails?

I am creating a site that requires admin approval before creating a user account. In Site Information settings I have set the site's e-mail address to "noreply#mysite.com"
New registrants request an account and they correctly get an e-mail From:noreply#mysite.com
No problems there.
However, the useful "Approve New User" e-mail also gets sent to "noreply#mysite.com" when I need it to go to "me#mysite.com." The noreply address is strictly a garbage address I will never check.
So, how do I set up a different email for the default "From:" address and the default system alert e-mail recipient address?
You can use Drupal's hook_mail_alter to intercept the email that gets sent to noreply#mysite.com send it to the desired email address. http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_mail_alter/6
It's also possible to do this kind of customization using Triggers and Actions:
http://drupal.org/node/199254
http://drupal.org/documentation/modules/trigger
There is a module, User Registration Notification, that does what I needed. Keep the site e-mail "no-reply" and change the To: value in the module to "me".
User registration notification