通过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:不允许操作

请帮忙。

+0

'nc smtp.gmail.com 25'是否有效?如果没有,那么你有防火墙问题。 – ams

+0

如果cygwin没有'nc',那么'telnet smtp.gmail.com 25'也会做同样的事情。 – ams

+0

既没有NC也没有telnet在机器上启动......我甚至没有在cygwin中找到它们的包。 –

我使用 msmtp 包,在该结构

port 587 
auth on 
from [email protected] 
host smtp.gmail.com 
tls on 
tls_certcheck off 
user [email protected] 

ref

安装和配置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