How to send email using simple smtp commands via gmail
To send over gmail, you need to use an encrypted connection. this is not possible with telnet alone, but you can use tools like openssl either connect using the starttls option in openssl to convert the plain connection to encrypted.
openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf -ign_eof
or connect to a ssl sockect directly…
openssl s_client -connect smtp.gmail.com:465 -crlf -ign_eof
EHLO localhost
After that, authenticate to the server using the base64 encoded username/password
AUTH PLAIN AG15ZW1haWxAZ21haWwuY29tAG15cGFzc3dvcmQ=
To get this from the commandline:
perl -MMIME::Base64 -e 'print encode_base64("\000myemail\@gmail.com\000mypassword")'
AG15ZW1haWxAZ21haWwuY29tAG15cGFzc3dvcmQ=
Then continue with “mail from:” like in your example
Example session:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
openssl s_client -connect smtp.gmail.com:465 -crlf -ign_eof
[... lots of openssl output ...]
220 mx.google.com ESMTP m46sm11546481eeh.9
EHLO localhost
250-mx.google.com at your service, [1.2.3.4]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH
250 ENHANCEDSTATUSCODES
AUTH PLAIN AG5pY2UudHJ5QGdtYWlsLmNvbQBub2l0c25vdG15cGFzc3dvcmQ=
235 2.7.0 Accepted
MAIL FROM: <gryphius-demo@gmail.com>
250 2.1.0 OK m46sm11546481eeh.9
RCPT TO: <somepoorguy@example.com>
250 2.1.5 OK m46sm11546481eeh.9
DATA
354 Go ahead m46sm11546481eeh.9
Subject: it works
yay!
.
250 2.0.0 OK 1339757532 m46sm11546481eeh.9
quit
221 2.0.0 closing connection m46sm11546481eeh.9
read:errno=0
wow yea!
- Wireless on the command line
- Connect to wireless network via command line
- Clone a Linux system install to another computer
- Howto: Linux Add or Remove a Linux Kernel Modules / Drivers
- Find RAM details (size, make, speed, slots, etc.) in Linux/Unix