내 Azure ci/cd 파이프라인에서 Ubuntu 20.04에 대한 테스트를 실행하고 있습니다. 테스트가 끝나면 Azure 파이프라인에 테스트 보고서를 첨부하여 팀에 이메일을 보내는 작업을 만들었습니다.
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.
내 조직 이메일이 이 이메일 ID를 스팸으로 처리하고 자동으로 거부하지 않도록 postfix에서 myhostname과 대상을 변경할 수 있는 방법이 있습니까?
답변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 파이프라인에 사용자 이름/암호 조합이 포함되어 있으므로 시스템 관리 및 보안 직원과 협력하여 이 문제를 해결하세요. 인증되지 않은 보낸 사람(보낸 사람) 주소를 화이트리스트에 추가하는 등의 대체 솔루션이 있을 수도 있습니다.