AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-129237

Christopher Thomas's questions

Martin Hope
Christopher Thomas
Asked: 2022-03-09 09:22:13 +0800 CST

导出新的环境参数而不输出到终端

  • 0

我正在尝试运行一个脚本,而当我不希望它输出文本时,bash 导出正在输出文本,因为它破坏了输出。我需要运行一个脚本来提取一些信息,然后将其插入到下一个命令环境中,有点像获取 awscli 的 AWS 机密并将它们透明地传递到 aws 环境中。我得到不一致的结果,我不确定为什么

$ ./bin/aws-creds mock
AWS_ACCESS_KEY_ID=mock1234
AWS_SECRET_ACCESS_KEY=mock1234
AWS_CREDS=success

$ ddt aws-creds mock
AWS_ACCESS_KEY_ID=mock1234
AWS_SECRET_ACCESS_KEY=mock1234
AWS_CREDS=success

两者输出相等,这很棒,所以让我们尝试运行它们并在输出上使用 export

$ export $(./bin/aws-creds mock)
$ export $(ddt aws-creds mock)
AWS_ACCESS_KEY_ID=mock1234
AWS_SECRET_ACCESS_KEY=mock1234
AWS_CREDS=success
declare -x .... a bunch of extra things from my environment

等一等?这两个命令在使用子shell $(...) 进行导出时似乎做了不同的事情,这就是我想要解决的问题。我想像第一个 ./bin 脚本一样,没有输出,而是将所有新参数插入到 shells 环境中。看起来我写的脚本'ddt'由于某种原因不能以同样的方式工作。

任何人都可以解释原因并提出一些解决方法吗?

bash shell export
  • 1 个回答
  • 43 Views
Martin Hope
Christopher Thomas
Asked: 2019-04-10 23:27:46 +0800 CST

如果我使用 dovecot 提交,我应该拒绝所有通过 postfix 发送的电子邮件吗?

  • 2

我在 587 端口上配置了 dovecot 提交服务,中继是 postfix 服务器。它们位于两个不同的 IP 地址/机器上。

我希望发送电子邮件的唯一方法是通过端口 587,这意味着 dovecot 将处理它并将其中继到 postfix。我不希望连接到端口 25 的人或任何东西创建新电子邮件并将它们发送给任何人。一切都必须通过 dovecot,因此所有邮件都针对 SASL/mysql 数据库进行身份验证。

这是否意味着在后缀中,我应该设置:

smtpd_sender_restrictions = 拒绝

因此,任何发件人都会立即被拒绝而无需任何处理,或者这会阻止 dovecot 也发送?

postconf -n

access_map_reject_code = 554
alias_maps =
compatibility_level = 2
debug_peer_level = 100
disable_vrfy_command = yes
inet_interfaces = all
inet_protocols = all
invalid_hostname_reject_code = 554
lmtp_host_lookup = native
mailbox_size_limit = 0
maps_rbl_reject_code = 554
message_size_limit = 50000000
milter_default_action = accept
milter_protocol = 2
multi_recipient_bounce_reject_code = 554
mydestination =
mydomain = s2.__SNIP__.com
myhostname = s2.__SNIP__.com
mynetworks = 127.0.0.1/32 [::1]/128 10.0.0.0/8
myorigin = $mydomain
mysql = mysql:${config_directory}
non_fqdn_reject_code = 554
non_smtpd_milters = inet:opendkim.mail-server:8891
plaintext_reject_code = 554
postscreen_upstream_proxy_protocol = haproxy
postscreen_upstream_proxy_timeout = 10s
readme_directory = no
recipient_delimiter = +
reject_code = 554
relay_domains_reject_code = 554
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = no
smtpd_error_sleep_time = 20
smtpd_hard_error_limit = 3
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks reject_unknown_helo_hostname reject_non_fqdn_helo_hostname reject_invalid_helo_hostname
smtpd_junk_command_limit = 2
smtpd_milters = inet:opendkim.mail-server:8891
smtpd_recipient_restrictions = reject_non_fqdn_recipient reject_unknown_recipient_domain permit_mynetworks reject_unknown_reverse_client_hostname reject_unknown_client_hostname permit
smtpd_relay_restrictions = permit_mynetworks reject_unauth_destination
smtpd_sasl_path = inet:dovecot.mail-server:24
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain reject_non_fqdn_sender
smtpd_soft_error_limit = 1
smtpd_tls_cert_file = /etc/certs/tls.crt
smtpd_tls_key_file = /etc/certs/tls.key
smtpd_tls_security_level = may
unknown_address_reject_code = 554
unknown_client_reject_code = 450
unknown_hostname_reject_code = 450
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_recipient_reject_reason = Address lookup failure
unverified_sender_reject_code = 554
virtual_alias_maps = ${mysql}/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = ${mysql}/mysql_virtual_mailbox_domains.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = ${mysql}/mysql_virtual_mailbox_maps.cf
virtual_transport = lmtp:inet:dovecot.mail-server:24

鸽子会议 -n

# doveconf -n
# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.4 ()
# OS: Linux 4.9.0-8-amd64 x86_64 Debian buster/sid ext4
# Hostname: dovecot-0.dovecot.mail-server.svc.cluster.local
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = plain login
auth_verbose = yes
auth_verbose_passwords = yes
disable_plaintext_auth = no
first_valid_gid = 8
first_valid_uid = 8
haproxy_timeout = 5 secs
haproxy_trusted_networks = 10.0.0.0/8
hostname = s2.__SNIP__.com
log_path = /dev/stderr
mail_access_groups = mail
mail_debug = yes
mail_gid = mail
mail_home = /mail/%d/%n
mail_location = maildir:/mail/%d/%n
mail_privileged_group = mail
mail_uid = mail
maildir_stat_dirs = yes
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
postmaster_address = info@__SNIP__.com
protocols = " imap lmtp pop3 submission"
service auth-worker {
  unix_listener auth-worker {
    group = mail
    mode = 0660
    user = $default_internal_user
  }
  user = mail
}
service auth {
  user = $default_internal_user
}
service dict {
  unix_listener dict {
    group = mail
    mode = 0660
  }
}
service imap-login {
  inet_listener imap {
    haproxy = yes
    port = 143
  }
  inet_listener imaps {
    haproxy = yes
    port = 993
    ssl = yes
  }
}
service lmtp {
  inet_listener lmtp {
    haproxy = no
    port = 24
  }
}
service pop3-login {
  inet_listener pop3 {
    haproxy = yes
    port = 110
  }
  inet_listener pop3s {
    haproxy = yes
    port = 995
    ssl = yes
  }
}
service submission-login {
  inet_listener submission {
    haproxy = no
    port = 587
  }
}
ssl_cert = </certs/tls.crt
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
submission_relay_host = postfix.mail-server
submission_relay_port = 587
userdb {
  driver = prefetch
}
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
verbose_ssl = yes
protocol !indexer-worker {
  mail_vsize_bg_after_count = 100
}
protocol lda {
  mail_plugins =
}
protocol imap {
  mail_plugins =
}
protocol lmtp {
  mail_plugins =
  recipient_delimiter = +
}
protocol pop3 {
  mail_plugins =
}
postfix
  • 1 个回答
  • 1028 Views
Martin Hope
Christopher Thomas
Asked: 2012-07-23 05:17:02 +0800 CST

后缀 php 过滤器

  • -3

我正在尝试使用 php 脚本过滤电子邮件,我想做的是在电子邮件与一组规则匹配时将其处理到数据库中。

规则将使用一组 PHP 字符串并使用 str_replace 或 preg_replace 来制定。

我找到了这个教程,但是当我运行它时,邮件服务器只能接受电子邮件,但我不能再登录和检查我的邮件了,我认为脚本正在吞噬一切并有效地黑洞服务器,所以它是一个部分解决方案,但是不完整。

http://blog.thecodingmachine.com/content/triggering-php-script-when-your-postfix-server-receives-mail

我要做的阶段是我可以执行脚本,它在需要时运行并写入数据库,但是电子邮件没有到达收件箱,而且也没有人可以登录查看电子邮件,所以我认为该脚本会阻止除接收电子邮件和立即退出之外的任何操作的执行,因此它对于只想根据规则引擎过滤/克隆电子邮件到数据库中的真实电子邮件服务器没有用。

现在要么我写的过滤器类型错误,要么我遗漏了一些东西,如果脚本被禁用,它允许电子邮件继续进入它应该放入的收件箱。我想这就是我错过的部分。

请注意:该脚本必须使用 PHP 运行,因此不需要其他解决方案。我已经知道链接:www.postfix.org/FILTER_README.html 并且我已经阅读了它,但是我不知道如何将其转换为实际工作的 PHP 脚本。似乎我总是在某个时候卡住,所以我对那些给我那个链接并说我应该阅读它的人也不感兴趣。

我这么说的原因是因为我在这里阅读了很多问题,这些问题通常以该链接或替代解决方案结尾,这些都没有帮助,所以如果您的回答是其中之一,请不要回复,我我不感兴趣,除非你想帮我解决我的具体问题,我不想浪费你的时间。

php
  • 3 个回答
  • 1196 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve