通过Cygwin发送电子邮件
问题描述:
我写了一个shell脚本,我想通过它发送电子邮件。我通过cygwin在Windows上执行此脚本。我在我的机器上安装了电子邮件包。但是,我正在努力工作。请让我知道通过cygwin命令提示符发送电子邮件的最简单方法是什么。通过Cygwin发送电子邮件
我ssmtp.conf文件是:
mailhub=smtp.gmail.com:587
FromLineOverride=YES
rewriteDomain=gmail.com
[email protected]
UseTLS=YES
AuthUser=userid
AuthPass=password
和email.conf文件有:
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = '25'
MY_NAME = 'ABC'
MY_EMAIL = 'emailaddress'
REPLY_TO = 'emailaddress'
USE_TLS = 'true'
ADDRESS_BOOK = '&/email.address.template'
SMTP_AUTH = 'LOGIN'
SMTP_AUTH_USER = 'userid'
SMTP_AUTH_PASS = 'password'
我使用下面的命令来发送电子邮件: 回声 “邮件正文” |邮件 - s“主题”[email protected] 但是,我收到以下错误: 电子邮件:致命:无法连接到服务器:端口上的smtp.gmail.com:25:不允许操作
请帮忙。
答
我使用 msmtp
包,在该结构
port 587
auth on
from [email protected]
host smtp.gmail.com
tls on
tls_certcheck off
user [email protected]
答
安装和配置ssmtp
包。
这些内容创建/bin/mail
:
#!/bin/sh
#
# copyright 2016 Gene Pavlovsky [http://www.razorscript.com]
#
# mail: mail-like wrapper script for sendmail
SENDMAIL=/usr/sbin/ssmtp
usage()
{
{
echo "Usage: $(basename $0) [-s "subject"] [-f from-addr] [to-addr]..."
echo
echo "Sends mail."
echo
echo "Options:"
echo -e " -s\tsubject (quote subjects containing spaces)"
echo -e " -f\tfrom address"
} >&2
exit 2
}
while test $# -gt 0; do
case $1 in
-s)
shift
test $# -eq 0 && usage
subj=$1
;;
-f)
shift
test $# -eq 0 && usage
from=$1
;;
-*)
usage
;;
*)
rcpt+=("$1")
;;
esac
shift
test "$end_options" = yes && break
done
test ${#rcpt} -eq 0 && usage
{
test "$from" && echo From: $from
test "$subj" && echo Subject: $subj
echo
exec /bin/cat
} | "$SENDMAIL" "${rcpt[@]}"
不要忘记chmod 755 /bin/mail
。
'nc smtp.gmail.com 25'是否有效?如果没有,那么你有防火墙问题。 – ams
如果cygwin没有'nc',那么'telnet smtp.gmail.com 25'也会做同样的事情。 – ams
既没有NC也没有telnet在机器上启动......我甚至没有在cygwin中找到它们的包。 –