Chandramani
Chandramani

Reputation: 353

Linux configuration -- ssmtp: Cannot open smtp.gmail.com:587

Hi I have RHEL5 with ssmtp installed on it ssmtp-2.61-22.el5.i386.rpm

my /etc/ssmtp/ssmtp.conf updated as below :-

[email protected]
AuthPass=mypassword
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
UseTLS=Yes
RewriteDomain=gmail.com

also revaliases updated as below :

root:[email protected]:smtp.gmail.com:587

i have shutdown sendmail service

when i try to send email with ssmtp i get below error

[root@ctmtest ssmtp]# echo "test" | ssmtp -vvv [email protected]
[<-] 220 smtp.gmail.com ESMTP v26sm42795996pfi.56 - gsmtp
[->] EHLO ctmtest
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
ssmtp: Cannot open smtp.gmail.com:587

i searched lots of tag with this error , but unable to fix this

my system is able to connect smtp.gmail.com on port 587

[root@ctmtest ssmtp]# telnet smtp.gmail.com 587
Trying 74.125.200.108...
Connected to smtp.gmail.com (74.125.200.108).
Escape character is '^]'.
220 smtp.gmail.com ESMTP o90sm11695907pfi.17 - gsmtp

is there anyone who have fixed this ? please suggest

Upvotes: 22

Views: 64156

Answers (10)

Kumanan
Kumanan

Reputation: 441

1. Install ssmtp - Ubuntu:

sudo apt-get install ssmtp

2. Create your Gmail APP Password

3. Configure ssmtp:

sudo vi /etc/ssmtp/ssmtp.conf

4. Below is my configuration

# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
# Modified 06/27/2024:
# mailhub=mail
[email protected]
[email protected]
#AuthPass=[usual gmail pwd] # aint' gonna work
AuthPass=[pwd generated by https://myaccount.google.com/apppasswords]
#UseTLS=YES
#mailhub=smtp.gmail.com:465
UseSTARTTLS=Yes
mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=laptop

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

5. Save the file

6. Run the below command on Ubuntu terminal

echo "Test email body" | ssmtp [email protected]

Upvotes: 0

webcoder.co.uk
webcoder.co.uk

Reputation: 381

This is my config for outlook365.com that works on Centos 6.10 (Final) - replace all [square brackets] with your own settings:

/etc/ssmtp/ssmtp.conf

root=[[email protected]]
mailhub=smtp.office365.com:587
RewriteDomain=[domain.ext]
# to find out run hostname command in shell
Hostname=[hostname_or_domain]
AuthUser=[[email protected]]
AuthPass=[your_password]
AuthMethod=LOGIN
FromLineOverride=YES
UseTLS=YES
UseSTARTTLS=YES
# Use SSL/TLS certificate to authenticate against smtp host.
# When enabled it was failing to send emails
#UseTLSCert=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

/etc/ssmtp/revaliases

root:[[email protected]]:smtp.office365.com:587

Upvotes: 0

Haider Raza
Haider Raza

Reputation: 485

I encountered the same problem. The following steps worked for me:

  1. sudo vi /etc/ssmtp/ssmtp.conf Add the following:

TLS_CA_FILE=/etc/pki/tls/certs/ca-bundle.crt [email protected] mailhub=smtp.gmail.com:587 AuthUser=XXXX AuthPass=XYXYX UseSTARTTLS=Yes UseTLS=Yes hostname=AAAA

Replace: XXXX- username(mail) XYXYX- password(mail password) AAAA- hostname(get by running $hostname)

  1. sudo vi /etc/ssmtp/revaliases Add the following:

root:[email protected]:smtp.gmail.com:587

Replace : XXXX - username(mail)

  1. Try running the mail now:

    $mail -s "adasdas" [email protected]

    CC: XYZLoremIpsum . 'ctrl+D'

It solved my problem. Hopefully for a system(Office) you need to configure correct proxy settings otherwise you will get an error:

cannot send message: Process exited with a non-zero status

Upvotes: 31

Skyfish
Skyfish

Reputation: 137

This should be a comment on Haider Raza's answer, but I am short of 1 rep point to comment lol.

From https://superuser.com/questions/431539/special-characters-in-ssmtp-password

ssmtp has bugs parsing passwords containing '=', ':' or '#'. You can use the following workaround:

feed the password directly in the command line argument

ssmtp -ap "Hash#Password" ...

alternatively put the password in an environment variable.

ssmtp -ap $PASSWD ...

Hope it helped.

Upvotes: 2

Jose Mendes
Jose Mendes

Reputation: 1

I ws looking for a solution for cacti smtp mail sender. And found myself actually sending an email using the postfix service . I also used localhost in the postfix config. Thanks!

Upvotes: 0

NVRM
NVRM

Reputation: 13047

Mail functions are all highly broken, so are the numerous tutorials on the internet.

This is pretty bad, for something that MUST be EASY for BEGINNERS.

A little panels of unclear errors you will face:

mailx: unrecognized option '-d'
šŸ’© 
mailx: unrecognized option '-v'
šŸ’©
s-nail: Setting up PseudoRandomNumberGenerator: *SSL RAND_*
s-nail: New-style URL used without *v15-compat* being set
/home/you/dead.letter 3/106
s-nail: ... message not sent
šŸ’© 
s-nail: Connecting to XX.XX.XX.XXX:465 ... connected.
s-nail: SMTP: Resource temporarily unavailable
šŸ’©
s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
šŸ’©
s-nail: Obsoletion warning: please don't use *smtp*: assign a smtp:// URL to *mta*!
šŸ’© 
s-nail: Unexpected EOF on SMTP connection
šŸ’©šŸ’©šŸ’©

No, there is no needs of any credentials to send a simple mail.

STEP 1: Install mail-utils

sudo apt install mailutils

STEP 2: Install mutt

sudo apt install mutt

STEP 3: Run the postfix setup

sudo dpkg-reconfigure postfix

Usage press TAB to select OK

enter image description here

Select "Internet site"

enter image description here

Enter your domain, or whatever

enter image description here

Leave all other settings as default. (Press RETURN till the end)

Mails will then be sent from this email: [email protected]

STEP 4: Apply settings

service postfix reload

STEP 5: Send email

echo "Hello world"  | mutt -s "Message sent at $(date)" [email protected] -y

STEP 6: Optional. Change sender email and name. Create a .muttrc file in the home folder.

echo -e "set from =  \"[email protected]\"\nset realname = \"Yay\"" > ~/.muttrc

Upvotes: -3

AstroFloyd
AstroFloyd

Reputation: 468

On my Gentoo Linux system, the error ssmtp: Cannot open smtp.server.com:port was caused by an ownership/permissions issue: the file /etc/ssmtp/ssmtp.conf should belong to the group ssmtp, which it didn't (and any user allowed to access ssmtp should be a member of that group).

Upvotes: 0

Mohammed Habib
Mohammed Habib

Reputation: 102

first to get your hostname type in terminal : hostname

copy it and past in hostname parameter in ssmtp.conf

Upvotes: 1

Sam Wilson
Sam Wilson

Reputation: 4512

This is perhaps because you're not setting the hostname parameter of ssmtp.conf. It should be a resolvable, fully-qualified domain name; yours is defaulting to the machine name of ctmtest (as shown in the EHLO command that you quote above).

The issue that user963 mentions in their answer may also be in action here, but in that case you'll get a different error message, something like ssmtp: Authorization failed (534 5.7.14 ...).

Upvotes: 4

user963
user963

Reputation: 51

try changing this option

Allowing less secure apps to access your account

https://support.google.com/accounts/answer/6010255?hl=en

Upvotes: 5

Related Questions