Skip to content

Instantly share code, notes, and snippets.

@ozzi-
Created July 11, 2019 08:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ozzi-/831b3764b2b6e1a0f909f2a1fafe9eac to your computer and use it in GitHub Desktop.
Save ozzi-/831b3764b2b6e1a0f909f2a1fafe9eac to your computer and use it in GitHub Desktop.
#!/usr/bin/expect
# Usage: ./sendmail.sh 192.168.200.1 from@domain.ch to@hdomain.ch "Some Subject" "Some Text\r\nSome more Text!"
# Prerequisites: apt-get install expect
set mailserver [lrange $argv 0 0]
set from [lrange $argv 1 1]
set to [lrange $argv 2 2]
set subject [lrange $argv 3 3]
set message [lrange $argv 4 4]
spawn telnet $mailserver 25
expect "failed" {
send_user "$mailserver: connect failed\n"
exit
} "2?? *" {
} "4?? *" {
exit
} "refused" {
send_user "$mailserver: connect refused\n"
exit
} "closed" {
send_user "$mailserver: connect closed\n"
exit
} timeout {
send_user "$mailserver: connect to port 25 timeout\n"
exit
}
send "HELO foo.com\r"
expect "2?? *" {
} "5?? *" {
exit
} "4?? *" {
exit
}
send "MAIL FROM: <$from>\r"
expect "2?? *" {
} "5?? *" {
exit
} "4?? *" {
exit
}
send "RCPT TO: <$to>\r"
expect "2?? *" {
} "5?? *" {
exit
} "4?? *" {
exit
}
send "DATA\r"
expect "3?? *" {
} "5?? *" {
exit
} "4?? *" {
exit
}
send "From: $from\r"
send "To: $to\r"
send "Subject: $subject\r"
send "$message\r"
send ".\r"
expect "2?? *" {
} "5?? *" {
exit
} "4?? *" {
exit
}
send "QUIT\r"
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment