是否可以通过 smtp 通过 bash 脚本发送邮件?

2024-03-18

我有postfix+dovecot。我想制作可以使用 SMTP 的 bash 脚本。我不想使用sendmail。

是否可以?也许有人有一些代码示例?


男孩,当挑战被抛出时,它总是bash就在我的头顶上! :-)

#!/bin/sh

function checkStatus {
  expect=250
  if [ $# -eq 3 ] ; then
    expect="${3}"
  fi
  if [ $1 -ne $expect ] ; then
    echo "Error: ${2}"
    exit
  fi
}

MyHost=`hostname`

read -p "Enter your mail host: " MailHost
MailPort=25

read -p "From: " FromAddr

read -p "To: " ToAddr

read -p "Subject: " Subject

read -p "Message: " Message

exec 3<>/dev/tcp/${MailHost}/${MailPort}

read -u 3 sts line
checkStatus "${sts}" "${line}" 220

echo "HELO ${MyHost}" >&3

read -u 3 sts line
checkStatus "$sts" "$line"

echo "MAIL FROM: ${FromAddr}" >&3

read -u 3 sts line
checkStatus "$sts" "$line"

echo "RCPT TO: ${ToAddr}" >&3

read -u 3 sts line
checkStatus "$sts" "$line"

echo "DATA" >&3

read -u 3 sts line
checkStatus "$sts" "$line" 354

echo "Subject: ${Subject}" >&3
echo "${Message}" >&3
echo "." >&3

read -u 3 sts line
checkStatus "$sts" "$line"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以通过 smtp 通过 bash 脚本发送邮件? 的相关文章

  • 对 smtp.live.com 和 TIdSmtp(Indy、Delphi)的 SSL 支持

    我正在尝试连接到 smtp live com 发送电子邮件 live com 自 2009 年以来显然支持免费的 pop3 smtp 但这对我来说完全是新闻 当我尝试连接到 smtp live com 端口 587 时 会发生以下情况 Me
  • 使用 sed 反转输入顺序

    我有一个文件 我们将其命名为 a txt 该文件包含以下文本行 do to what 我想知道 SED 命令是什么来反转此文本的顺序 使其看起来像 what to do 我必须做某种追加吗 就像将 do 附加到 to 所以它看起来像 to
  • 使用 git-svn 时模拟 subwcrev

    我使用 git svn 与包含一些 C 项目的现有 SVN 存储库进行交互 subwcrev exe 用作预构建事件来更新 C 标头 svnversion h 中的某些字符串 这些字符串被硬编译以形成生成的二进制文件的一些版本信息 由于 s
  • 为什么 ssh-agent 需要 root 访问权限?

    我刚刚安装了 Archbang 并尝试克隆我的 Git 项目 这需要 SSH 密钥 过去 我在 Ubuntu 和 RedHat 机器上遵循 Github 指南取得了成功 但由于某种原因 它在我的新 Arch 安装上不起作用 我已使用以下命令
  • Bash或Python,当打印字符到终端时,如何更改固定位置的字符?

    我想知道的事情应该是非常 基本 的 但这是我脑海中很长一段时间的问题 不知道窍门在哪里 假设在一个耗时的程序中 或者bash or Python 我必须打印出运行时的进度百分比 基本上我想打印1 一段时间后 我打印2 等等 我想要 2 完全
  • 引用附加变量?

    我怎样才能在 bash 脚本中做到这一点 bin sh func export NAME SUFFIX result of some command NAME my name func This variable will become m
  • 与 .Net 中的 IIS SMTP 服务器进行有意义的交互

    我们的公司每周都会向大量订阅者发送新闻通讯 当公司还很年轻时 在我加入之前 他们使用了一些群发邮件程序的 免费 版本 花了六个小时才发送 5K 封邮件 并且违反了互联网上的每一次反向 DNS 检查 我将其升级为定制的 Net 小部件 该小部
  • 验证 BASH 脚本时出现问题 [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试验证 bash 脚本时出现代码 lint 错误 bin bash if eq 0 then printf No argum
  • Bash 脚本重定向不起作用,为什么? [复制]

    这个问题在这里已经有答案了 我最近在 bash 脚本中发现了意外行为 我想在解决它之前先了解它 这是一个简化的示例 bin sh SCRIPT tmp echoscript sh gt gt tmp log bin sh SCRIPT ec
  • 如何正确使用 liquibase `searchPath` 选项来指示各自的资源文件夹?

    我正在尝试调用update的命令liquibase如下 liquibase update changelog file persistence src main resources changelog db changelog dev xm
  • bash 或 sh 中的“=”和“==”运算符有什么区别

    我意识到 和 运算符都可以在 if 语句中使用 例如 var some string if var some string then doing something fi if var some string then doing some
  • 尝试 SSH 时设备的 ioctl 不合适

    我正在尝试通过 SSH 连接几台服务器并尝试获取sudo l每个服务器的输出 下面是我正在执行的脚本 bin bash serverlist tmp servers while IFS read r server netgroup user
  • 命令行参数中的“-”(破折号)有什么魔力?

    例子 创建 ISO 映像并将其直接刻录到 CD mkisofs V Photos r home vivek photos cdrecord v dev dev dvdrw 更改到上一个目录 cd 侦听端口 12345 并解压发送到该端口的数
  • 回车前清除行

    我想在一行中打印一个进度 所以我使用回车符 问题是我的进步不是增加 gt 这意味着第一个打印可能是Processing Foo Bar Baz下一个打印可能是Processing Foo 简单回车的问题是第二次打印将是重叠的通过第一张打印
  • 如何替换每行中出现的所有字符串?

    我想在以下脚本中将所有出现的 用户名 替换为 但它仅替换第一次出现的情况 ls al sed s username 这就是 sed 默认情况下的工作方式吗 提前致谢 你需要g 全局 修饰符 sed s username g
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • -bash: gulp: 在 Mac 中找不到命令

    我尝试在 mac 中安装 gulp 如下所示 Is iMac itop npm root Users itop node modules Is iMac itop npm config set prefix usr local Is iMa
  • Bash 中的 Shellshock 漏洞背后的行为是有记录的还是有意为之?

    最近的一个漏洞 CVE 2014 6271 http web nvd nist gov view vuln detail vulnId CVE 2014 6271 如何Bash http en wikipedia org wiki Bash
  • 当我通过 shell 脚本创建 .txt 文件时,为什么文件名末尾出现问号? [复制]

    这个问题在这里已经有答案了 我正在编写一个 shell 脚本 我应该在其中创建 1 个文本文件 当我这样做时 文件名末尾出现一个问号 是什么原因 我正在 bash 脚本中尝试以下方法 1 grep ERROR a1 gt text txt
  • 如何在 Bash 中为数组赋值?

    我正在尝试从文本文件中读取值列表 你好 txt 并将它们存储在一个数组中 counter 0 cat hello txt while read line do Unix Array counter line let counter coun

随机推荐

  • 如果我添加/删除/更新可靠集合的元素,休眠会增加版本吗?

    我正在学习休眠乐观锁机制 但我还没有找到我的问题的答案用户指南 https docs jboss org hibernate orm 6 0 userguide html single Hibernate User Guide html l
  • Powershell 按 [DateTime]::ParseExact 排序对象

    我正在尝试使用 PowerShell 按日期对控制台程序返回的行进行排序 日期的格式为 MM dd yyyy 格式 因此必须将它们转换为 DateTime 对象才能采用可排序的格式 为了解析日期 我使用 dates 10 24 2010 0
  • 控制器的 Angular 中的 Jasmine 测试

    我收到以下错误 TypeError undefined is not a function问题是公共的是模块和工厂 问题出在我的线上 var ctrl controllerConstructor resetPasswordSentScree
  • 有没有办法从 MongoDB 检索没有 _id 字段的数据?

    我在我们的项目中使用 MongoDB 目前正在学习它是如何工作的 当插入记录时 MongoDB自动生成ID 查询数据时 总是返回 id 当我们将 Bson Json 反序列化为 out 对象时 这会产生一个问题 因为我们的类型没有该字段 而
  • 使用 C# 在 asp.net 中排序列表和下拉列表

    我有一个返回排序列表的方法 我想将其数据源到下拉列表 我在用 DropDownList1 DataSource stList DropDownList1 DataValueField stList ContainsValue DropDow
  • Haskell:针对 Hackage 的多个版本的基础测试包

    我正在尝试将我的第一个包上传到 Hackage 耶 但出现以下错误 依赖项 build depends base 未指定版本号的上限 基础 包的每个主要版本都会以各种方式更改 API 并且大多数包都需要进行一些更改才能与其一起编译 推荐的做
  • Flutter更新BottomNavigationBar

    我将 BottomNavigationBar 与 TabController 一起使用 通过单击 BottomNavigationBar 的不同选项卡 TabView 会更改内容 但是 如果我在 TabView 上滑动以切换到另一个视图 选
  • 如何使用 C# xaml 以编程方式设置数据绑定

    如何以编程方式设置 DataContext 并在 C Xaml 中创建数据绑定 给定一个类 class Boat INotifyPropertyChanged public event PropertyChangedEventHandler
  • npm 错误!网络 getaddrinfo ENOTFOUND

    我正进入 状态npm ERR network getaddrinfo ENOTFOUND尝试使用 NPM 安装任何包时出错 我知道有很多关于同一问题的线程 但我找不到任何可以帮助我的线程 我已经设置了代理 我认为这与代理设置不正确 没有使用
  • 将 pandas.DataFrame 添加到现有 Excel 文件

    我有一个网络抓取工具 可以为本月的抓取创建一个 Excel 文件 我想在每次运行时将今天的刮擦和该月的每次刮擦添加到该文件中作为新工作表 然而 我的问题是 它仅用新工作表覆盖现有工作表 而不是将其添加为单独的新工作表 我尝试使用 xlrd
  • Hibernate 延迟加载问题

    我在 Hibernate 5 中映射了这个实体 class A private String code private B child LazyToOne LazyToOneOption PROXY ManyToOne fetch Fetc
  • 在不使用cocoapods的情况下向现有项目添加框架

    我有一个现有项目 我想在其中添加名为 CoreActionSheetPicker 的框架 https github com skywinder ActionSheetPicker 3 0 问题是我似乎无法将框架添加到我的项目中 当我将框架拉
  • 如何在 Java 中生成没有按键代码的键盘事件?

    我使用 Robot 类和 KeyEvent 按键代码来生成所有其他按键事件 它们工作正常 但我还需要 Hangul 键 切换韩语键盘 显然 KeyEvent 没有这个键的键码 所以我被卡住了 有没有办法生成这个韩文键事件 有没有办法使用 W
  • Angular2:使用 DynamicComponentLoader 动态插入组件上的双向数据绑定

    我正在开发 Angular2 应用程序 遇到一个问题 我有一组可以使用 UI 选择的不同对象 每个对象都有一组可以使用 UI 进行编辑的选项 不同对象不同 现在 我使用 DynamicComponentLoader 为当前选定的对象插入特定
  • Git 中可以使用特殊字符吗?

    我真的很高兴我修复了 Rails 代码中的这个愚蠢的错误 并且很高兴地在终端中输入了以下内容 git add git commit am Finally fixed that difficult bug 才发现git不喜欢 有谁知道我可以将
  • Python Pandas Concat“WHERE”满足条件

    如何 连接 许多 Python Pandas 数据帧中的特定列 其中许多数据帧中每个数据帧中的另一列满足特定条件 此处通俗地称为条件 X 在 SQL 中 使用 JOIN 子句和 WHERE df2 Col2 X 和 df3 Col2 X 和
  • 是否对破折号进行编码

    我正在尝试在我的 Phonegap Android 应用程序中使用 Google Analytics 我按照这个仓库中的说明进行操作 https github com DoersGuild Cordova Android Analytics
  • 如何检查两个 Map 对象是否相等?

    我如何检查是否有两个ES2015 地图 https developer mozilla org en US docs Web JavaScript Reference Global Objects Map对象具有相同的集合 key valu
  • 我如何在学说上使用“外键”?

    我正在 symfony2 和原则上制作课程管理系统 我对在学说中使用外键感到困惑 实体 用户 php class User extends BaseUser ORM Id ORM Column type integer ORM Genera
  • 是否可以通过 smtp 通过 bash 脚本发送邮件?

    我有postfix dovecot 我想制作可以使用 SMTP 的 bash 脚本 我不想使用sendmail 是否可以 也许有人有一些代码示例 男孩 当挑战被抛出时 它总是bash就在我的头顶上 bin sh function check