Sendmail: Difference between revisions
Line 103: | Line 103: | ||
send "QUIT\r" | send "QUIT\r" | ||
exit | exit | ||
=Send email via openssl. Paste content in shell and get strings to send= | |||
export SMTP=<smtp_server> | |||
export SMTP_USERNAME=<username> | |||
export SMTP_PASSWORD=<password> | |||
export SMTP_FROM=<first.last@inter.net> | |||
export SMTP_FROM_FULL=$(cut -d'@' -f1 <<< "${SMTP_FROM}" | awk -F '.' '{print toupper(substr($1,1,1)) substr($1,2) " " toupper(substr($2,1,1)) substr($2,2)}') | |||
export SMTP_TO=email.address@gmail.com | |||
export SMTP_TO_FULL=$(cut -d'@' -f1 <<< "${SMTP_TO}" | awk -F '.' '{print toupper(substr($1,1,1)) substr($1,2) " " toupper(substr($2,1,1)) substr($2,2)}') | |||
export SUBJECT="Hello World" | |||
export BODY="Some stupid text that goes strait to /dev/null." | |||
export AUTH_PLAIN=$(echo -ne "\0${SMTP_USERNAME}\0${SMTP_PASSWORD}" | base64) | |||
cat << EOF | |||
openssl s_client -ign_eof -starttls smtp -crlf -connect $SMTP:587 | |||
EHLO $SMTP | |||
AUTH PLAIN ${AUTH_PLAIN} | |||
MAIL FROM:<${SMTP_FROM}> | |||
RCPT TO:<${SMTP_TO}> | |||
DATA | |||
From: [${SMTP_FROM_FULL}] <${SMTP_FROM}> | |||
To: [${SMTP_TO_FULL}] <${SMTP_TO}> | |||
Subject: ${SUBJECT} $(date '+%F %H:%M:%S %Z') | |||
${BODY} | |||
To $SMTP_TO_FULL $SMTP_TO | |||
-- | |||
$SMTP_FROM | |||
. | |||
QUIT | |||
EOF | |||
=SMTP servers for internet providers= | =SMTP servers for internet providers= |
Latest revision as of 14:14, 26 November 2024
resend mails in queue
sendmail -q -v
resend a mail in mbox format
cat /tmp/sendmail.txt | sendmail -i -t -v
delete mails from a recipiant
sendmail -qR -v hotmail.com
Who owns mails with problem
mailq | grep @ | grep -v ^k | cut -d \< -f 2 | cut -d @ -f2 | awk '{print $1}' | sort | uniq -c | sort -n | grep -v `hostname` | cut -d \> -f 1| tail
send mail with telnet
[user@host]# telnet smtp.domain.com 25 Trying 192.168.0.1... Connected to smtp.domain.com (192.168.0.1). Escape character is '^]'. 220 myrelay.domain.com ESMTP HELO smtp.domain.com 250 myrelay.domain.com MAIL FROM:<alice@hacker.com> 250 sender <alice@hacker.com> ok RCPT TO:<bob@secure.net> 250 recipient <bob@secure.net> ok DATA 354 go ahead From: [Alice Hacker] <alice@hacker.com> To: [Bob Smith] <bob@secure.net> Date: Mon, 12 Apr 2010 14:21:26 -0400 Subject: Test Message Hi there! This is supposed to be a real email... Have a good day! Alice . 250 ok: Message 222220902 accepted QUIT 221 myrelay.domain.com Connection closed by foreign host.
send mail via telnet and expect
#!/usr/bin/expect set mailserver [lrange $argv 0 0] set from [lrange $argv 1 1] set to [lrange $argv 2 2] 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: test\r" send "This is a test message\r" send ".\r" expect "2?? *" { } "5?? *" { exit } "4?? *" { exit } send "QUIT\r" exit
Send email via openssl. Paste content in shell and get strings to send
export SMTP=<smtp_server> export SMTP_USERNAME=<username> export SMTP_PASSWORD=<password> export SMTP_FROM=<first.last@inter.net> export SMTP_FROM_FULL=$(cut -d'@' -f1 <<< "${SMTP_FROM}" | awk -F '.' '{print toupper(substr($1,1,1)) substr($1,2) " " toupper(substr($2,1,1)) substr($2,2)}') export SMTP_TO=email.address@gmail.com export SMTP_TO_FULL=$(cut -d'@' -f1 <<< "${SMTP_TO}" | awk -F '.' '{print toupper(substr($1,1,1)) substr($1,2) " " toupper(substr($2,1,1)) substr($2,2)}') export SUBJECT="Hello World" export BODY="Some stupid text that goes strait to /dev/null." export AUTH_PLAIN=$(echo -ne "\0${SMTP_USERNAME}\0${SMTP_PASSWORD}" | base64) cat << EOF openssl s_client -ign_eof -starttls smtp -crlf -connect $SMTP:587 EHLO $SMTP AUTH PLAIN ${AUTH_PLAIN} MAIL FROM:<${SMTP_FROM}> RCPT TO:<${SMTP_TO}> DATA From: [${SMTP_FROM_FULL}] <${SMTP_FROM}> To: [${SMTP_TO_FULL}] <${SMTP_TO}> Subject: ${SUBJECT} $(date '+%F %H:%M:%S %Z') ${BODY} To $SMTP_TO_FULL $SMTP_TO -- $SMTP_FROM . QUIT EOF
SMTP servers for internet providers
mailrelay.bostream.com smtp smtp.bredband.net smtp
smarthost
set smarthost and domain. /etc/mail/sendmail.mc define(`SMART_HOST', `smtp.bredband.net')
LOCAL_DOMAIN(`www.halfface.se')dnl
sendmail listen on all network interfaces
Enable smtp on all interfaces.
/etc/mail/sendmail.mc DAEMON_OPTIONS(`Port=smtp,Name=MTA')dnl
Usermappings
/etc/mail/virtusertable anden@halfface.se bjorklun andreas.bjorklund@halfface.se bjorklun none@halfface.se error:nouser 550 No such user here wrong@halfface.se error:5.7.0:550 Address invalid @halfface.se bjorklun anna-karin@sivberg.se stannaks @sivberg.se stannaks
aliases for your host
/etc/mail/local-host-names www.halfface.se halfface.se www.sivberg.se sivberg.se www.walles.nu walles.nu
Access rights. Who can send mail and username and password at www.bredband.net smtp server.
<verbatim> /etc/mail/access
localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY 192.168.2.1 RELAY 192.168.3.1 RELAY AuthInfo:smtp.bredband.net "U:b586378" "I:b586378" "P:??????" "M:LOGIN PLAIN"
Forward a copy of email.
~/.forward
\bjorklun andreas.bjorklund@infineon.com
sending mail from command line
From: "From hoever" <email@inter.net> To: "Andreas halfface Bjorklund" <email@inter.net> Subject: Test Email MIME-Version: 1.0 Content-Type: text/plain Andreas Bjorklund doing test. anden@halfface.se # cat /tmp/sendmail.txt | sendmail -i -t
explained
2.1.2. Header Field: From Description: Mailbox of message author [...] Related information: Specifies the author(s) of the message; that is, the mailbox(es) of the person(s) or system(s) responsible for the writing of the message. Defined as standard by RFC 822. 2.1.3. Header Field: Sender Description: Mailbox of message sender [...] Related information: Specifies the mailbox of the agent responsible for the actual transmission of the message. Defined as standard by RFC 822. 2.1.22. Header Field: Return-Path Description: Message return path [...] Related information: Return path for message response diagnostics. See also RFC 2821 [17]. Defined as standard by RFC 822.
envelope-from
What's the difference between the Envelope From and Sender and From in an email?
Basically Envelope From is used are part of the protocol and Send From is part of the data.
header fields
Accept-Language mail [RFC4021] Alternate-Recipient mail [RFC4021] Archived-At prov/archived-at mail standard [RFC5064] Authentication-Results mail standard [RFC7601] Auto-Submitted mail standard [RFC3834 section 5] Autoforwarded mail [RFC4021] Autosubmitted mail [RFC4021] Bcc mail standard [RFC5322] Cc mail standard [RFC5322] Comments mail standard [RFC5322] Content-Identifier mail [RFC4021] Content-Return mail [RFC4021] Conversion mail [RFC4021] Conversion-With-Loss mail [RFC4021] DL-Expansion-History mail [RFC4021] Date mail standard [RFC5322] Deferred-Delivery mail [RFC4021] Delivery-Date mail [RFC4021] Discarded-X400-IPMS-Extensions mail [RFC4021] Discarded-X400-MTS-Extensions mail [RFC4021] Disclose-Recipients mail [RFC4021] Disposition-Notification-Options mail [RFC4021] Disposition-Notification-To mail [RFC4021] DKIM-Signature mail standard [RFC6376] Downgraded-Bcc mail obsoleted [RFC5504][RFC6857] Downgraded-Cc mail obsoleted [RFC5504][RFC6857] Downgraded-Disposition-Notification-To mail obsoleted [RFC5504][RFC6857] Downgraded-Final-Recipient mail standard [RFC6857 Section 3.1.10] Downgraded-From mail obsoleted [RFC5504][RFC6857 Section 3.1.10] Downgraded-In-Reply-To mail standard [RFC6857 Section 3.1.10] Downgraded-Mail-From mail obsoleted [RFC5504][RFC6857 Section 3.1.10] Downgraded-Message-Id mail standard [RFC6857 Section 3.1.10] Downgraded-Original-Recipient mail standard [RFC6857 Section 3.1.10] Downgraded-Rcpt-To mail obsoleted [RFC5504][RFC6857] Downgraded-References mail standard [RFC6857 Section 3.1.10] Downgraded-Reply-To mail obsoleted [RFC5504][RFC6857] Downgraded-Resent-Bcc mail obsoleted [RFC5504][RFC6857] Downgraded-Resent-Cc mail obsoleted [RFC5504][RFC6857] Downgraded-Resent-From mail obsoleted [RFC5504][RFC6857] Downgraded-Resent-Reply-To mail obsoleted [RFC5504][RFC6857] Downgraded-Resent-Sender mail obsoleted [RFC5504][RFC6857] Downgraded-Resent-To mail obsoleted [RFC5504][RFC6857] Downgraded-Return-Path mail obsoleted [RFC5504][RFC6857] Downgraded-Sender mail obsoleted [RFC5504][RFC6857] Downgraded-To mail obsoleted [RFC5504][RFC6857] Encoding mail [RFC4021] Encrypted mail [RFC4021] Expires mail [RFC4021] Expiry-Date mail [RFC4021] From mail standard [RFC5322][RFC6854] Generate-Delivery-Report mail [RFC4021] Importance mail [RFC4021] In-Reply-To mail standard [RFC5322] Incomplete-Copy mail [RFC4021] Keywords mail standard [RFC5322] Language mail [RFC4021] Latest-Delivery-Time mail [RFC4021] List-Archive mail [RFC4021] List-Help mail [RFC4021] List-ID mail [RFC4021] List-Owner mail [RFC4021] List-Post mail [RFC4021] List-Subscribe mail [RFC4021] List-Unsubscribe mail [RFC4021] Message-Context mail [RFC4021] Message-ID mail standard [RFC5322] Message-Type mail [RFC4021] MMHS-Exempted-Address mail [RFC6477][ACP123 Appendix A1.1 and Appendix B.105] MMHS-Extended-Authorisation-Info mail [RFC6477][ACP123 Appendix A1.2 and Appendix B.106] MMHS-Subject-Indicator-Codes mail [RFC6477][ACP123 Appendix A1.3 and Appendix B.107] MMHS-Handling-Instructions mail [RFC6477][ACP123 Appendix A1.4 and Appendix B.108] MMHS-Message-Instructions mail [RFC6477][ACP123 Appendix A1.5 and Appendix B.109] MMHS-Codress-Message-Indicator mail [RFC6477][ACP123 Appendix A1.6 and Appendix B.110] MMHS-Originator-Reference mail [RFC6477][ACP123 Appendix A1.7 and Appendix B.111] MMHS-Primary-Precedence mail [RFC6477][ACP123 Appendix A1.8 and Appendix B.101] MMHS-Copy-Precedence mail [RFC6477][ACP123 Appendix A1.9 and Appendix B.102] MMHS-Message-Type mail [RFC6477][ACP123 Appendix A1.10 and Appendix B.103] MMHS-Other-Recipients-Indicator-To mail [RFC6477][ACP123 Appendix A1.12 and Appendix B.113] MMHS-Other-Recipients-Indicator-CC mail [RFC6477][ACP123 Appendix A1.12 and Appendix B.113] MMHS-Acp127-Message-Identifier mail [RFC6477][ACP123 Appendix A1.14 and Appendix B.116] MMHS-Originator-PLAD mail [RFC6477][ACP123 Appendix A1.15 and Appendix B.117] MT-Priority mail standard [RFC6758] Obsoletes mail [RFC4021] Organization mail informational [RFC7681] Original-Encoded-Information-Types mail [RFC4021] Original-From mail standard [RFC5703] Original-Message-ID mail [RFC4021] Original-Recipient perm/original-recipient mail standard [RFC3798][RFC5337] Originator-Return-Address mail [RFC4021] Original-Subject mail standard [RFC5703] PICS-Label mail [RFC4021] Prevent-NonDelivery-Report mail [RFC4021] Priority mail [RFC4021] Received mail standard [RFC5322][RFC5321] Received-SPF mail standard [RFC7208] References mail standard [RFC5322] Reply-By mail [RFC4021] Reply-To mail standard [RFC5322] Require-Recipient-Valid-Since mail standard [RFC7293] Resent-Bcc mail standard [RFC5322] Resent-Cc mail standard [RFC5322] Resent-Date mail standard [RFC5322] Resent-From mail standard [RFC5322][RFC6854] Resent-Message-ID mail standard [RFC5322] Resent-Reply-To mail obsoleted [RFC5322] Resent-Sender mail standard [RFC5322][RFC6854] Resent-To mail standard [RFC5322] Return-Path mail standard [RFC5322] Sender mail standard [RFC5322][RFC6854] Sensitivity mail [RFC4021] Solicitation mail [RFC3865] Subject mail standard [RFC5322] Supersedes mail [RFC4021] To mail standard [RFC5322] VBR-Info mail standard [RFC5518] X400-Content-Identifier mail [RFC4021] X400-Content-Return mail [RFC4021] X400-Content-Type mail [RFC4021] X400-MTS-Identifier mail [RFC4021] X400-Originator mail [RFC4021] X400-Received mail [RFC4021] X400-Recipients mail [RFC4021] X400-Trace mail [RFC4021]
block outgoing smtp(25/tcp)
iptables -A OUTPUT ! -d 127.0.0.1 -p tcp --dport 25 -j REJECT
delete queued mails
\rm -r /var/spool/mqueue/* /etc/init.d/sendmail stop ; mv /var/spool/mqueue{,.bak} ; mkdir /var/spool/mqueue ; chown root:mail /var/spool/mqueue ; chmod 700 /var/spool/mqueue ; /etc/init.d/sendmail start
sendmail in debug mode.
Edit sendmail config.
vim /etc/mail/sendmail.mc
Change line to:
define(`confLOG_LEVEL', `15')dnl
Apply change to config.
/etc/mail/make
sendmail via local tunnel
sendmail.mc. Have tunnel running like this: ssh -L2525:smtp.host.com:25 host.access.com
define(`SMART_HOST', `[localhost]')dnl define(`RELAY_MAILER', `esmtp')dnl define(`RELAY_MAILER_ARGS', `TCP $h 2525')dnl
Multiple smart hosts in sendmail
define(`SMART_HOST',`host1:host2:host3')
send mail via exchange server
nc
nc -C mail.inter.net 25 220 SLTVMSEXH2.inter.net Microsoft ESMTP MAIL Service ready at Wed, 24 Aug 2022 15:25:53 +0200 EHLO inter.net 250-SLTVMSEXH2.inter.net Hello [10.30.54.133] 250-SIZE 157286400 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-STARTTLS 250-8BITMIME 250-BINARYMIME 250 CHUNKING MAIL FROM:noreply-ocp-alert@inter.net 250 2.1.0 Sender OK RCPT TO:<abjorklund@redbridge.se> 250 2.1.5 Recipient OK DATA 354 Start mail input; end with <CRLF>.<CRLF> Subject: Test from cli. This is a test email. . 250 2.6.0 <9b6b3732-d123-40f3-abfe-43ef2b38ad53@SLTVMSEXH2.inter.net> [InternalId=225588862255476, Hostname=SLTVMSEXH2.inter.net] 1675 bytes in 16.395, 0,100 KB/sec Queued mail for delivery QUIT 221 2.0.0 Service closing transmission channel
powershell
Send-MailMessage -To abjorklund@redbridge.se -From noreply-ocp-alert@regionvastmanland.se -Subject "Test" -Body "Test body" -SmtpServer "mail.ltvastmanland.se"
send mail debug mode
(echo subject: $(date_stockholm; date_stockholm )) | sendmail -v -i -Am -- anden@halfface.se (echo subject: $(date_stockholm; date_stockholm )) | sendmail -f anden@halfface.se -v -i -Am -- anden@halfface.se
Test ssl connection
openssl s_client -ign_eof -starttls smtp -crlf -connect halfface.se:25