2025-02-28 21:14:33 +01:00
|
|
|
#!/usr/bin/expect
|
|
|
|
|
|
|
|
package require base64
|
|
|
|
|
|
|
|
|
|
|
|
# SMTP-Server und Port definieren
|
2025-03-17 20:25:33 +01:00
|
|
|
set smtp_server "172.16.3.33"
|
2025-02-28 21:14:33 +01:00
|
|
|
set smtp_port "25"
|
|
|
|
set timeout 25
|
|
|
|
|
|
|
|
# Absender, Empfänger und Nachricht
|
|
|
|
set sender $env(SMTP_SENDER)
|
2025-03-17 20:25:33 +01:00
|
|
|
set recipient $env(SMTP_RECIPIENT)
|
2025-02-28 21:14:33 +01:00
|
|
|
set message "Subject: Test Email\r\n\r\nThis is a test email sent via an expect script."
|
|
|
|
|
|
|
|
set smtp_user $env(SMTP_USER)
|
|
|
|
set smtp_pass $env(SMTP_PASS)
|
|
|
|
|
|
|
|
set smtp_user_64 [base64::encode $smtp_user]
|
|
|
|
set smtp_pass_64 [base64::encode $smtp_pass]
|
|
|
|
|
|
|
|
|
|
|
|
# Verbindung herstellen
|
|
|
|
spawn nc -C $smtp_server $smtp_port
|
|
|
|
|
|
|
|
# Begrüßung vom Server erwarten
|
|
|
|
expect "220 *"
|
|
|
|
|
|
|
|
# HELO/EHLO senden
|
2025-03-17 20:25:33 +01:00
|
|
|
send "EHLO baikonur\n"
|
2025-02-28 21:14:33 +01:00
|
|
|
expect "250 *"
|
|
|
|
|
2025-03-17 20:25:33 +01:00
|
|
|
if {[info exists smtp_user] && $smtp_user ne ""} {
|
|
|
|
send "AUTH LOGIN\n"
|
|
|
|
expect "334 VXNlcm5hbWU6"
|
2025-02-28 21:14:33 +01:00
|
|
|
|
2025-03-17 20:25:33 +01:00
|
|
|
send "$smtp_user_64\n"
|
|
|
|
expect "334 UGFzc3dvcmQ6"
|
2025-02-28 21:14:33 +01:00
|
|
|
|
2025-03-17 20:25:33 +01:00
|
|
|
send "$smtp_pass_64\n"
|
|
|
|
expect "235 2.7.0 Authentication successful"
|
|
|
|
} else {
|
|
|
|
puts "skip authentication"
|
|
|
|
}
|
2025-02-28 21:14:33 +01:00
|
|
|
|
|
|
|
# Absender definieren
|
|
|
|
send "MAIL FROM:<$sender>\n"
|
|
|
|
expect "250 *"
|
|
|
|
|
|
|
|
# Empfänger definieren
|
|
|
|
send "RCPT TO:<$recipient>\n"
|
|
|
|
expect "250 *"
|
|
|
|
|
|
|
|
# Datenübertragung starten
|
|
|
|
send "DATA\n"
|
|
|
|
expect "354 *"
|
|
|
|
|
|
|
|
# Nachricht senden und Übertragung abschließen
|
|
|
|
send "$message\n.\n"
|
|
|
|
expect "250 *"
|
|
|
|
|
|
|
|
# Verbindung schließen
|
|
|
|
send "QUIT\n"
|
|
|
|
expect "221 *"
|
|
|
|
|
|
|
|
# Beenden
|
|
|
|
interact
|
|
|
|
|