在我的 Azure ci/cd 管道中,我正在 Ubuntu 20.04 上执行测试。测试结束时,我在 azure pipeline 中创建了任务,向团队发送附有测试报告附件的电子邮件。
我在 azure 任务中使用 bash 脚本。
这是代码:
echo "line1"
sudo apt install mailutils
echo "line2"
sudo apt install mutt
echo "line3"
echo -e "Test Message" | mutt -s "[E2E ]TestReport - Test Status" -- [email protected]
现在这个功能偶尔会起作用。我的邮箱中收到一封电子邮件,发件人姓名为vsts@fv-az355-724.norxwxgvcn4uzhpoaxg0br3vlg.fx.internal.cloudapp.net
每次此电子邮件地址都不同。
我相信,由于我的任务是 ci/cd 管道的一部分,每次部署发生时,都会自动生成此电子邮件。我的组织电子邮件系统以某种方式将其视为垃圾邮件,并且每次都不让它进入。
我还尝试编辑~/.muttrc
文件并设置主机名。
它再次从该主机名发送了一次电子邮件,然后就停止了。没有错误或失败。
我该如何解决这个问题?
帖子编辑:在查看日志时,我在日志中发现了以下内容。日志很长,但这似乎很重要。 Mailutils 也自行安装 postfix。
Creating /etc/postfix/dynamicmaps.cf
Adding group `postdrop' (GID 129) ...
Done.
setting myhostname: fv-az356-758.todi3lz1wlfenaxowbnpzhq2oe.fx.internal.cloudapp.net
setting alias maps
setting alias database
changing /etc/mailname to fv-az356-758.todi3lz1wlfenaxowbnpzhq2oe.fx.internal.cloudapp.net
setting myorigin
setting destinations: $myhostname, fv-az356-758.todi3lz1wlfenaxowbnpzhq2oe.fx.internal.cloudapp.net, localhost.todi3lz1wlfenaxowbnpzhq2oe.fx.internal.cloudapp.net, , localhost
setting relayhost:
setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
setting mailbox_size_limit: 0
setting recipient_delimiter: +
setting inet_interfaces: all
setting inet_protocols: all
/etc/aliases does not exist, creating it.
WARNING: /etc/aliases exists, but does not have a root alias.
有没有办法可以更改 postfix 中的 myhostname 和目的地,以便我的组织电子邮件不会将此电子邮件 ID 视为垃圾邮件并默默拒绝它?
答案1
并不是真正直接回答您的问题,而是提供一个可能为根本问题提供解决方案的指针。
mutt
是使用其内置的 SMTP 处理程序直接向您的组织发送电子邮件,或者将电子邮件传递到postfix
同一系统并让该系统将消息直接发送到您的组织。
此处的一种选择是配置mutt
为使用经过身份验证的 SMTP 并以组织内的有效用户身份直接传送。为此,您需要在组织内提供用户名和关联密码,并且您真的不应该用你自己的。
参考:https://wiki.archlinux.org/title/mutt#Native_SMTP_support
set my_pass = 'account really long and complex password'
set my_user = 'account name'
set realname = 'Account Real Name'
set from = account_email_address@your_organisation.com
set use_from = yes
set smtp_pass = $my_pass
set smtp_url = smtps://$my_user@your_organisation_smtp_server.com
set ssl_force_tls = yes
显然,这并不完美,特别是因为现在您的 CI/CD 管道中嵌入了用户名/密码组合,因此请与您的系统管理和安全人员一起处理这一问题。他们可能有替代解决方案,例如将未经身份验证的发件人(发件人)地址列入白名单。