วิธีการส่งจดหมายจากบรรทัดคำสั่ง?
วิธีการส่งจดหมายจากบรรทัดคำสั่ง?
คำตอบ:
ลองติดตั้งMutt E-mail ไคลเอ็นต์ ตัวเลือกอื่น ๆ โดยใช้ emacs กับGNUS ตัวเลือกอื่น ๆ ก็มีให้เช่นกัน ... IMHO คุณควรใช้รายละเอียดเพิ่มเติมในคำถามของคุณหรือตอบคำถามต่าง ๆ ที่คุณจะได้รับ :-)
ติดตั้งssmtp :
sudo apt-get install ssmtp
แก้ไขไฟล์ ssmtp config:
gksu gedit /etc/ssmtp/ssmtp.conf
ต่อท้ายข้อความต่อไปนี้:
root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=password
FromLineOverride=YES
UseTLS=YES
เรียกใช้ ssmtp และระบุที่อยู่อีเมลของผู้รับ:
ssmtp recepient_name@gmail.com
ระบุรายละเอียดข้อความดังต่อไปนี้:
To: recipient_name@gmail.com
From: username@gmail.com
Subject: Sent from a terminal!
Your content goes here. Lorem ipsum dolor sit amet, consectetur adipisicing.
(Notice the blank space between the subject and the body.)
กดCtrl+ Dเพื่อส่ง
คุณสามารถใส่ข้อความในไฟล์และส่งดังต่อไปนี้:
ssmtp recipient_name@gmail.com < filename.txt
เวลาส่วนใหญ่คุณไม่จำเป็นต้องกำหนดค่าเซิร์ฟเวอร์ SMTP คุณสามารถใช้mail
จาก commandline (หากยังไม่มีให้ติดตั้งด้วยsudo apt-get install mailutils
) (หรือถ้าคุณอยู่บนเซิร์ฟเวอร์ที่มีการกำหนดค่า sendmail ฯลฯ )
marco@dagobah:~$ mail -v marco.ceppi.use@gmail.com
Subject: Hello World!
This is an email to myself.
Hope all is well.
.
Cc:
คุณยุติข้อความด้วย.
บรรทัดเดียว นั่นคือเวลาที่mail
จะให้คุณCc:
ป้อนข้อมูล (หรือเว้นว่างไว้) mail
จากนั้นพิมพ์ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่พยายามทำรวมถึงรายละเอียดการประมวลผลการเชื่อมต่อการส่งและการรับข้อมูลจากเซิร์ฟเวอร์อีเมล
sudo apt-get install mailutils
จะติดตั้งเซิร์ฟเวอร์ SMTP postfix
ซึ่งอาจจะมีน้ำหนักเกินเล็กน้อยสำหรับบางคน
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail
การใช้งาน:
sendemail -f fromuser@gmail.com -t touser@domain.com -u subject -m "message" -s smtp.gmail.com:587 -o tls=yes -xu gmailaccount@gmail.com -xp gmailpassword
หากคุณไม่ต้องการระบุรหัสผ่านในบรรทัดคำสั่ง (โดยทั่วไปไม่ใช่สิ่งที่ควรทำ) คุณสามารถละเว้นพารามิเตอร์นั้นและ sendemail จะแจ้งให้คุณใส่รหัสผ่าน ... และแสดงบนหน้าจอ แต่อย่างน้อยที่สุด มันจะไม่อยู่ในประวัติบรรทัดคำสั่งของคุณ
sendmail
ความมั่นใจมากที่สุดสะดวกมาก ขอขอบคุณ.
-s smtp.gmail.com:587
ผมต้องระบุพอร์ตด้วย
pass=$(cat my_password); sendemail... -xp $name ...
และแน่นอนถ้าคุณเรียกมันโดยทางโปรแกรมคุณสามารถทำสิ่งที่คล้ายกันเช่น: ruby system("sendemail ... -xp #{File.read 'my_password'}...")
และอาจล้มเหลว ในครั้งแรกคุณควรได้รับอีเมลไปยังบัญชีดังกล่าวเพื่อแนะนำให้คุณ "เปิดใช้งานแอปที่ปลอดภัยน้อยลง" จากนั้นจะสามารถใช้งานได้
mpack เป็น commandline วิธีที่ยอดเยี่ยมในการส่งไฟล์แนบ
apt-get install mpack
การใช้งาน:
mpack -s "file you wanted" ./data.pdf loser@supergoober.cn
คุณต้องมี MTA เพื่อส่งจดหมาย สำหรับสิ่งนี้ใช้ postfix:
sudo apt-get install postfix
ในการส่งอีเมล:
echo "test message" | mailx -s 'test subject' myemail@mydomain.com
mailutils
เมื่อฉันป้อนสิ่งนี้ลงในเทอร์มินัล
ติดตั้งแพ็กเกจsendmail
จากนั้นพิมพ์
sendmail -t receiver@example
จากนั้นเขียนอีเมลของคุณจากนั้นกด Ctrl + D
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com
หรือ
cat "afile" | mail -s "subject" someone@dest_email.com
sudo apt-get install mailutils
ใน Ubuntu / Debian หรือyum install mailx
ใน CentOS / Redhat
hanoo@hp_laptop% nc 127.0.0.1 25
220 hp_laptop.localdomain ESMTP Postfix
EHLO man
250 hp_laptop.localdomain
MAIL FROM: <netcat@postfix.com>
250 2.1.0 Ok
RCPT TO: <target@host.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is the body of my mail,
this is the second line...
.
250 2.0.0 Ok: queued as 9C12E7F404
swaks
และคุณกำลังดีด้วย SSL / TLS เกินไป ;-)
openssl s_client -starttls smtp ...
หากคุณพยายามส่งอีเมลจากระบบ whitch จะไม่เรียกใช้อีเมลเซิร์ฟเวอร์ของคุณเอง (เช่นระบบเดสก์ท็อป) คุณจะต้องติดตั้งบางอย่างเช่นnullmailerหรือesmtpซึ่งจะส่งต่อจดหมายท้องถิ่นของคุณไปยังอีเมล "ของจริง" เซิร์ฟเวอร์
ในฐานะที่เป็นเครื่องมือบรรทัดคำสั่งคุณสามารถติดตั้งเมลหรือ mailx (แพ็คเกจ mailutils, heirloom-mailx หรือ bsd-mailx) หากคุณต้องการไฟล์แนบลองใช้ biabam
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com
โดยที่filename
เหมือนกัน: มันหมายถึงไฟล์อินพุตและไฟล์รีโมต
sudo apt-get install sharutils
foruuencode
คุณสามารถลองสิ่งนี้:
mail name@mailserver.com -s "Attached file" <<EOF
Hi
~| uuencode $HOME/filename.txt filename.txt
EOF
มันทำงานร่วมกับGNU Mailutilsตรวจสอบเว็บไซต์สำหรับข้อมูลเพิ่มเติม
วิ่ง :
sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf
จำเป็นต้องเพิ่มสิ่งต่อไปนี้:
# The user that gets all the mails (UID < 1000, usually the admin)
root=yourusernameofgmail@gmail.com
# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also https://support.google.com/mail/answer/78799
mailhub=smtp.gmail.com:587
# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com
# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes
# Username/Password
AuthUser=yourusernameofgmail
AuthPass=yourGmailPassowrd
AuthMethod=LOGIN
# Email 'From header's can override the default domain?
FromLineOverride=yes
วิ่ง :
sudo -H gedit /etc/ssmtp/revaliases
เข้าสู่ที่นั่น:
root:yourusernameofgmail@gmail.com:smtp.gmail.com:587
เปิดใช้งาน"แอปที่ปลอดภัยน้อยลง"ใน Gmail:
https://support.google.com/accounts/answer/6010255?hl=th
ทดสอบด้วยการรันสิ่งต่อไปนี้บนเทอร์มินัล:
echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`
นอกจากนี้ฉันยังได้รับข้อผิดพลาดนี้
echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv somebody@mil.gov
[<-] 220 smtp.gmail.com ESMTP v193sm19198825qka.18 - gsmtp
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] aG94Z2VuZUBrrrFpbC5jb20=
[<-] 334 UGFzweliecmQ6
[<-] 534 5.7.14 https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp
ssmtp: Authorization failed (534 5.7.14 https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp)
SOLUTION: ทำการรีเซ็ตรหัสผ่าน gmail แม้ว่ารหัสผ่านปัจจุบันจะถูกต้อง ... อาจเป็นการป้องกันความปลอดภัยของ Google