SwiftMailer not send mail with Google App account - email

I'm using Symfony and I'm trying to send an email with swiftmailer. I have an account set up with google app (produccion#mydomain.com) and when I try to send shows me the following error:
Failed to authenticate on SMTP server with username
"produccion#mydomain.com" using 2 possible authenticators
I tried it with my personal gmail account and send the message correctly with the same settings. Just change the username and password.
# Swiftmailer Configuration
swiftmailer:
transport: smtp
host: smtp.gmail.com
username: produccion#mydomain.com #email#gmail.com
password: google_app_password #gmail_password
auth_mode: login
port: 587
encryption: tls
I've been searching the internet and I've found this page from Google, where I can change the access to less secure applications.
https://www.google.com/settings/security/lesssecureapps
In my gmail account this option is active, but if I turn shows me the same error when sending email.
I've been trying to change this setting in google app account but it tells me that this option is not available for google app.
Any idea to send emails from this account by google app? I have to set something else?
EDIT
It seems Gmail prefers OAuth, Swiftmailer supports this authentication mech but its not really documented.
https://developers.google.com/gmail/xoauth2_protocol
https://github.com/swiftmailer/swiftmailer/blob/5.x/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php
Any idea how I use it in Symfony?

Have you tried setting the transport parameter to gmail as mentioned in the cookbook? http://symfony.com/doc/current/cookbook/email/gmail.html
# Swiftmailer Configuration
swiftmailer:
transport: gmail
username: your_gmail_username
password: your_gmail_password

Related

Sendgrid setup on SQL Database Mail

I have been trying to setup sendgrid on SQL Database Mail but all the time it says Cannot send mail to mail server.
This is what i have done.
I have sendgrid accound with abc#mydomain.com and created api key and SG.xxxx password.
As this is prod setup instance, i had done domain level authentication and my webmaster updated CNAME as requested by sendgrid.
Tested using TELNET smtp.sendgrid.net 587 and authenticated with SG.xxxx password Base64 encoded and this was able to send email from abc#mydomain.com to xyz#mydomain.com
I setup profile with abc#mydomoain.com as SQL notification Profile and selected Basic Authentication and provided 'apikey' as username and 'SG.xxx' as password in Database Mail - 'Configure Database Mail' option in SQL SSMS. Unchecked - 'The server requires secure authentication (SSL) connection' Port 587
I tried to 'Send Test Mail' with 'abc#domain.com' to 'xyz#mydomain.com' but the Database Mail reflects as below screenshot error
I have tried using abc#mydomain.com and sendgrid account password in Database Mail Config wizard for Basic authentication, but sendgrid suggested they don't accept Basic authentication. Please help how and where should i pass the api key if not under Basic Authentication ?
I tried updating with msdb.dbo.sysmail_add_account_sp nad updating records but it too didn't resolve and send email from Database mail.
Any help/ guidance would be greatly appreciated or if you had faced this how have you resolved it.
Hi the solution is as follows
Create a dbmail profile
server name: smtp.sendgrid.net
port : 25
SMTP Authentication
Basic Auth
User name: apikey
Password: : {the api-key for your sendgrid account}
Thats it. Send a test email.
If it still doesn't work, if you are on AWS EC2 ensure that security group allows outbound port:25
Here is the link from sendgrid about apikey authentication.
https://docs.sendgrid.com/for-developers/sending-email/upgrade-your-authentication-method-to-api-keys

Has anyone configured SMTP relay for Outbound Emails in G Suite?

Has anyone been able to route outgoing mail through Google using another non-Gmail SMTP service?
I currently have a website running with Bitnami vm running a CanvasLMS application on a Google Cloud Platform server.
When entering my GSuite Gmail Advanced Settings, the required steps have been done to configure the SMTP relay service. (TLS set to true)
https://support.google.com/a/answer/2956491?hl=en&authuser=3&ref_topic=2921034
I have also configured the setup for the outgoing email server at /apps/canvaslms/htdocs/config/outgoing_mail.yml (replacing username and password with my application's credentials)
production:
enable_starttls_auto: true
address: smtp-relay.gmail.com
port: 587
user_name: USERNAME#gmail.com
password: PASSWORD
authentication: plain # plain, login, or cram_md5
domain: smtp-relay.gmail.com
outgoing_address: USERNAME#gmail.com
default_name: CANVAS LMS
Saved the changes and restarted the server. When trying to send an email in Canvas for new user registration, it never reaches the receivers email inbox.
I have reviewed my application logs and have not discovered any errors related to this
Any thoughts on troubleshooting this SMTP issue???
https://docs.bitnami.com/installer/apps/canvaslms/configuration/configure-smtp/
https://community.canvaslms.com/t5/Question-Forum/emails-are-not-sent-to-users-students/m-p/230561#M128347

Jenkins SMTP Configuration - 535 Authentication Failed

I'm trying to configure Jenkins email notification via Mailer plugin 1.21.
I'm using secureserver.net as a mailing server.
I have a problem with "SMTP Authentication", the "Test configuration" is reporting 535 Authentication:
Failed to send out e-mail
javax.mail.AuthenticationFailedException: 535 Authentication Failed
for jenkins#xxxx.com
at
com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:809)
at
com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:752)
at
com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:669)
at javax.mail.Service.connect(Service.java:317) at
javax.mail.Service.connect(Service.java:176) at
javax.mail.Service.connect(Service.java:125) at
javax.mail.Transport.send0(Transport.java:194) at
javax.mail.Transport.send(Transport.java:124)
My settings are as follows:
SMTP server: smtpout.secureserver.net
Use SMTP Authentication: yes
User Name: jenkins#xxxx.com
Password: ******
Use SSL - yes
SMTP Port - 465
Charset - UTF-8
I'm using the same credentials to connect via webmail: https://email11.secureserver.net/webmail.php. I don't have a connection problem.
Do you have any explanation why jenkins refuse to authenticate?
As google doesn't allow login from less secure apps you have do the following steps:
1. Login to "https://myaccount.google.com/security"
2. Enable "Allow less secure apps" to "ON"
Then check the "Test configuration" in jenkins.
From https://products.secureserver.net/email/email_outlook.htm:
NOTE: "smtpout.secureserver.net" is an SMTP relay server. In order to
use this server to send e-mails, you must first activate SMTP relay on
your e-mail account. Log on to your Manage Email Accounts page to set
up SMTP relay.
Did you do this?
I solved similar issue by creating a new SMTP credential from AWS SES.
But I am still amazed why old credentials didn't work with jenkins even if it was working with other applications.

How can I use a user alias with gmail smtp authentification?

I am using Drupal 7 and the SMTP module. The Gmail (Apps for work) account uses 2 step verification and an app password so that the website can auth using SMTP. Fine so far.
The problem is that the user account, say johndoe#domain.com should not be the from address, but info#domain.com should. info is already a working alias for johndoe.
We must use johndoe to actually authenticate, an alias does not work for this. But, although the from address in debug is info#domain.com, in my mail app the sender still seems to be johndoe#domain.com.
Any ideas?
Edit: I've read that the Google SMTP service overrides the from address with the user account. Even if the from address is an existing alias?
This is really weird.
Please try adding alias email address in gmail.
Open gmail => Setting => Accounts => Send email as: => Add another email address
Gmail will send confirmation code to the alias email. After you add the alias address, gmail smtp will accept "from" parameter with your alias address.
if I understood you, if you want to use the account (johndoe#domain.com) to authenticate, but you do not want it to be shown as a sender, and the sender should be (info#domain.com), then you must follow the following Steps.
It is more than obvious that you must be a GSuite administrator.
First you enable third-party authentication, go to:
Google GSuite Security=>
basic configuration=>
Unsecured applications=>
(click here) Access the settings of unsafe applications=>
Enable access for all users to unsafe applications (not recommended)
Second, in your application for sending mail do this:
Sender Address: info#domain.com
User: johndoe#domain.com
Server: smtp.gmail.com
Port: 465
Encryption: ssl
Password: yourpassowrdaccount
Exampple: https://i.stack.imgur.com/u0X8J.png

Gmail smtp configuration for Drupal 7

I want to send email in Drupal 7. So, does anyone know how to configure Gmail SMTP on Drupal 7?
Download SMTP module and enable it.
Go to Admin > Configuration > SMTP authentication support and set the following values:
Turn on the module at the Install options fieldset at the top.
SMTP server settings:
smtp server: smtp.gmail.com
smtp backup server: leave blank.
smtp port: 465
use encrypted protocol: select "use SSL"
SMTP authentication:
Enter a valid Gmail email address and password.
Email options:
Set the same email address that you used at SMTP Authentication. Using a different account is called Phishing
Send test email: set an email to receive a sample email.
Enable debugging: yes.
3. Click on submit and verify that the email was submitted and that you received it. If not, read carefully the debug information at the top of the screen. Once satisfied, remember to deactivate the debug checkbox.
Step 1: Download SMTP module and enable it.
Step 2: Go to Admin > Configuration > System > SMTP authentication support and set the following values:
Turn this module on or off: On.
SMTP server settings:
smtp server: smtp.gmail.com
smtp backup server: leave blank.
smtp port: 465
use encrypted protocol: select "use SSL"
SMTP authentication:
Enter a valid Gmail email address and password.
Email options:
Set the same email address that you used at SMTP Authentication.
Send test email: set an email to receive a sample email and to test whether the module is working.
Enable debugging: yes.
Step 2a(Optional): Allow Less Secure Apps Access which is here: http://www.google.com/settings/security/lesssecureapps
Step 3: Click on Save and go to your inbox to check. If there is an testing email then it is fine.
Note: Your email address provided in your smpt setting MUST be the same like in your site information.
I hope SMTP Authentication Support module will help you.
For me, just following the steps in Juampy's answer didn't work. The error "Unable to send mail. Contact site administrator." continued to display. Do the following first and then configure SMTP module as per his answer.
Before installing SMTP module, download PHPMailer and extract it. Rename the folder as 'phpmailer' and copy the folder into module folder of SMTP module. Then, install the SMTP module.
An alternative configuration is as follows:
smtp port: 587
use encrypted protocol: select "use TLS"
This blog entry has some more up-to-date info:
http://www.stevepolitodesign.com/blog/drupal-configure-smtp-module-work-gmail-updated
Install and set-up module:
Install the SMTP Authentication Support module in the usual way.
Navigate to the configuration page admin/config/system/smtp
Under Turn this module on or off select On. You can leave Send mail
by queue and Retry sending mail on error. deselected by default, but
selecting them won't affect Gmail.
Under SMTP server enter the following smtp.gmail.com. Leave SMTP
backup server blank
Under SMTP port enter 587 ​
Under Use encrypted protocol select Use TLS ​
Under SMTP AUTHENTICATION enter a Gmail address and password.
Under E-MAIL OPTIONS use the same Gmail address as you did above and
enter an E-mail from name
Click Save
Update gmail account settings:
Login to your Gmail account at https://myaccount.google.com/
On the account homepage, click Sign-in & security or navigate to https://myaccount.google.com/security
Scroll down to the Allow less secure apps: widget, and have it enabled.
Now navigate to https://accounts.google.com/DisplayUnlockCaptcha and click Continue
Go back to the SMTP configuration page admin/config/system/smtp
Enter an email address you would like to receive a test message from and click Save configuration
Check your inbox to confirm you received the test message.