Drupal 7, SMTP module + Gmail - configuration

Gmail blocks any suspicious activity, and kudos to them for that. An example of this is when you're configuring your SMTP module to use your gmail account for sending mail from your drupal 7 + SMTP module-enabled site. How do I enable gmail to accept mail from my Drupal site?

Here are the steps I use to allow Drupal + SMTP access to my gmail's SMTP server:
Note: disabling the "overlay" module may help with reading the output generated in step #6; so consider disabling it.
Install and configure the SMTP module for drupal. Configure for your gmail account. Instructions here
Prepare gmail to "watch" for new application access to your account.
Ensure that you've logged in to gmail using the same account with which you wish to associate your Drupal site
Visit https://accounts.google.com/DisplayUnlockCaptcha
You will be see instructions about how to enable another application to send on your behalf. You have 10 minutes after clicking [ continue ] to complete the next step.
The last field at admin/config/system/smtp is "SEND TEST E-MAIL" which doubles as an excellent SMTP debugger, btw. Enter your email address here and check enable debuging just below the field.
Click [ Save Configuration ] this will trigger the sending of the test email.
Watch the debugging output produced by SMTP, which the SMTP module places visually towards the top of the SMTP configuration page.
If you see send errors, review the output for corrective actions.
Hope this helps.

Related

How to fix less secure app access problem in Gmail ...?

Google is getting rid of less secure app access feature. I'm using smtp email service for my website's contact page. But after 30 May, 2022 this service will not work probably.
Is there any other way to give third party less secure app access to my Gmail account ..?
Can an app password solve this problem ..? I have doubts that setting app password will not give access either as google said this may not work for less secure app.
So is there any way to fix this so that the smtp email service works as it should ...?
TLDR:
I had a similar problem, I set up an App Password, and my email-sending piece of code is working fine again.
This video shows how to set up App Password.
Google's formal instructions for setting up an App Password.
Caveats:
Initially, Gmail had automatically turned off my less secure apps setting because I hadn't used that test account in several months. I turned it on, but since I saw the message that it'd be disabled by 2022.05.30, I went ahead and set the app password. This means my current setup has both less secure apps AND app password enabled in my Gmail account, though I'm only using the app password for authentication.
My program usually ran from within WSL2 on top of Windows 11. Even after setting up the app password, my code was returning a gaierror: [Errno -3] Temporary failure in name resolution error when running from within WSL2. I then tried running it straight from Windows 11 and it worked just fine. I now need to fix the networking issue causing this, but it doesn't seem to be directly caused by using app password.
I hope this helps.
Note: 2-factor authentication needed to be enabled before proceeding.
Less secure apps (https://myaccount.google.com/u/0/lesssecureapps) options is deprecated.
We can use apppasswords functionality provided by Google using following link.
https://myaccount.google.com/u/0/apppasswords
Use 16 digit code provided by google instead of password and that should serve as authentication token.
It can be done via 2 factor authentication and app password

OpenERP 7.0 configure mail servers

I have a problem configuring Outgoing Mail Servers.
When I click "Test Connection", I see "Connection test succeeded! Everything seems properly set up!", but when I try to create user, and I click "Send reset password instructions by email", I've got a message "Cannot send email: no outgoing email server configured. You can configure it under Settings/General Settings."
I tried with various smtp servers and I got a clue when trying gmail smtp.
Google asked me:
You can switch to an app made by Google such as Gmail to access your
account (recommended) or change your settings at
https://www.google.com/settings/security/lesssecureapps so that your
account is no longer protected by modern security standards.
When I switched off the "modern security standards" I managed to send reset password instructions, however I can't use gmail for OpenERP.
I run OpenERP on my Synology NAS and there is something that smtp servers don't like. They allow to connect, but wouldn't allow to send emails.
IP is not and issue, as I tried smtp settings from account I actually have set up in my Outlook.
I will welcome any idea to solve it.
Thanks!
I found the reason.
It makes no sense to me and I can't find the logic behind it, but this is causing the problem described.
The Company email has to be the same as ERP email servers.
this actually happens when there is not email provided for the admin user. please provide the admin user the same email address used in outgoing mail server
I had the same problem, but I solved it.
Please follow the below steps.
Go to 'My Account'
Please select the 'Connected apps & sites'
Then you will see the 'Allow less secure apps: ON' Please 'ON' that button.
Please try again to Press 'Test Connection' button.
Hope this will help you.

IIS smtp messages stuck in inetpub/mailroot/queue

I have initiated an email by using utl_mail.send
begin
utl_mail.send(
sender => <<sender mail>>,
recipients => <<recipient mail>>,
message => 'Hello World'
);
commit;
end;
/
But, the mail is not sent to recipient and stays in inetpub/mailroot/queue.
We verified all smtp server settings and looks fine.
We see that port 25 is also open.
Also, we stopped the smtp, cleared the queue, and re-start the smtp again. Still the issue is not resolved.
Kindly help with your valuable answers and experience. Every individual answer is appreciated.
Thanks in advance,
Subbu
Check the Event Viewer for any logs
For this you need to open the Event Viewer and goto Windows
Logs and then Application.
If its a 4.3.1 error then simply it
means the \inetpud\mailroot\ does not have proper permissions to the mailroot folder ,so give it the IIS_IUSRS and also IIS AppPool\"Your App Pool"
If the problem still persists make sure you have the vmstp setup on the local server , for this you need to have smtpclient installed on the server and go to IIS manager (not inetpub) and add a new VSMTP server .
And in the delivery choose the outbound security and then add your gmail or what ever mail you use.
And also make sure you allow port 25 through the firewall
Use telnet to try and confirm all is will by sending a very plain email. Instructions thanks to wiki (http://www.askstudent.com/techtips/how-to-use-telnet-to-send-email-over-port-25-using-smtp/):
Step # 1: First, open a command prompt. To open a command prompt window, click Start, Run and then type in cmd and press Enter. You can also press the +R to open the Run prompt and then type in cmd in the open text box.
Step # 2: You need to know a remote mail server. If you are still in school or working, there is the excellent opportunity to use your University mail server or your company’s mail server for this.
type in telnet RemoteMailServer 25 at the command prompt. The Remote mail server here in this command is the mail server of your school or company. It is usually mailhost..edu or compmail..com or something on those lines. When you press enter, you are shown a quick prompt that you are connecting to the remote mail server.
Step # 3: Introduce yourself to the mail server. Play around a bit.
type in helo mailhost at the command prompt. The mail server responds back with something like this
250 RemoteMailHost. Hello , pleased to meet you.
Step # 4: You can now enter your email address.
type in mail from: your email id # blah.com
The mail server responds back with a 250 … sender ok
Step # 5: You can now enter your receipient’s email address
type in rcpt to: recipient email id # blah.com
The mail server responds back with a “Recipient OK” message
Step # 6: Now, you are ready to type in the body of the email message.
type in data and press enter.
Now, type your message and then finally press Enter. To end your message type in a single period “.” . Your message is now in the queue
Step # 7: To complete and finish the process, type in quit and press enter. The mail server responds with a “Bye” after which you see a “Connection to host lost” message displaye
I recently ran into the same issue on server 2016. SMTP was configured using the IIS6 manager. Turns out, SMTP also had to be configured in IIS proper as well. Basically, I selected SMTP from the IIS server node, entered credentials for my smtp server and saved it. Immediately items that were stuck in the Queue folder started to get delivered. Not sure why this was necessary because I was accessing the relay from a console app, but the solution did work.
I ran into the same issue on Server 2019. My problem was that "From Email Address" used while sending from client wasn't matching what was setup on SMTP server. Once the client started sending with the correct "From Email Address", the mails were no longer stuck in the Queue.

Mail server rejecting default credentials in smtp settings for asp.net 4.0 healthMonitoring

I have successfully set up health monitoring for logging errors on my ASP.NET web page to the Windows Event Log, a SQL Server database, and through email (Microsoft Exchange) when I specify a user name and password in the web.config file. However, if I change from specifying a user name and password to defaultCredentials="true" in web.config, I get the following error message in my Windows Event Log when it tries to generate the email:
System.Web.HttpException (0x80004005): Unable to send out an e-mail to the SMTP
server. Please ensure that the server specified in the <smtpMail> section is
valid. ---> System.Net.Mail.SmtpException: Mailbox unavailable. The server
response was: 5.7.1 Client does not have permissions to send as this sender
I am running Windows Vista on a corporate domain. My Windows login is identical to my Microsoft Exchange login. Can anyone provide some insight as to why specifying my login credentials explicitly in the web.config file works, but using defaultCredentials="true" does not? Are there any known solutions so that I can have an automated email sent through healthMonitoring without having to store my user name and password in the web.config file?
Since I earned the tumbleweed badge for this question, I doubt an answer will be of much value to anyone else; but knowing that I will inevitably fall into the same trap at a later date, I thought I would post an answer to my own question...
Authentication is not necessary for sending emails within the same domain; so instead of specifying defaultCredentials="true", I removed all fields related to authentication, and the emails began working again.
Note that this is only a partial solution. I only need to send emails to addresses within the same domain for now. Sending emails outside of this domain will not work without authentication, so if/when that is needed, it will be back to the drawing board...

Plesk, SMTP and sending e-mail from same domain

I have a server with Plesk installed.
On that I've created a domain, my-domain.com, and added and e-mail account noreply#my-domain.com with access to SMTP for sending e-mails.
With PHPMailer or Swift Mailer I am able to send via the SMTP account noreply#my-domain.com whenever the from address is outside the my-domain.com, for example info#my-second-domain.com.
Whenever I'm using an e-mail address that ends on #my-domain.com it fails.
I've tried to look in the /usr/local/psa/var/log/maillog file, but it only stores the mails that doesn't fail.
Can someone help me figure out where the problems is?
You can try this:
Delete the related domain in the qmail file /var/qmail/control/virtualdomains
Then reload/restart qmail. Now it should work.
More technical background at http://forum.parallels.com/pda/index.php/t-93222.html
Benjamin answer didn't work on my installation (Plesk 11.5), but I found another solution:
just turn off the mail service itself. It might not be the solution for everyone but it was for me (my domain's mx records pointing to another server, with some scripts sending emails here and there).
You can turn off the mail service fairly easily using Plesk GUI.
Then uncheck
However, this won't turn it off for subdomains and secondary domains you might have. No problem, just log in with ssh and run this command:
/usr/local/psa/bin/domain -u mydomain.example.com -mail_service false
And if one day you decide you want to turn it back on just replace false by true.