web.config 파일 외부에 smtp를 저장합니다
-
03-07-2019 - |
문제
얼마 동안 나는 내 연결 및 앱 설정을 외부 파일에 저장하고 웹을 통해 해당 파일을 참조했습니다. 이것은 별도의 연결 문자열과 앱 설정을 유지할 수 있기 때문에 정말 잘 작동합니다. 개발 중에 나는 종종 WebConfig를 많이 변경하고 Web.Config를 업데이트 할 때마다 환경 별 값을 관리 해야하는 것을 싫어하기 때문에 이것은 정말 편리합니다.
어쨌든 나는 web.config의 SMTP 구성 섹션으로 이것을 달성 할 수 있습니다.
해결책
물론 configsource 속성을 사용할 수 있습니다.
예시:
<system.net>
<mailSettings>
<smtp configSource="MailSettings.config"/>
</mailSettings>
</system.net>
그런 다음 MailSettings 구성 데이터를 MailSettings.config에 넣으십시오
그러면 MailSettings.config 파일은 다음과 같은 것이 있습니다.
<network
host="relayServerHostname"
port="portNumber"
userName="username"
password="password" />
업데이트: 실제로 SMTP 노드에 올바르게 작동해야 할 수도있는 것처럼 보이므로 위의 코드를 업데이트하여 동일한 아이디어 만 사용해야합니다. :)
다른 팁
여기에있는 것이 최신 버전의 .NET에만 적용되는지 확실하지 않습니다. 허용 된 답변을 사용하여 런타임 오류가 발생했습니다.
최신 버전의 .NET으로 작업하는 경우 아래 코드 블록으로 허용 된 답변을 업데이트하십시오. SMTP 노드는 네트워크 노드뿐만 아니라 별도의 파일에 있어야합니다. 실제 web.config 파일의 전체 SMTP 노드는 추가되는 appSettings와 달리 거기에 넣은 파일로 대체됩니다.
web.config-
<system.net>
<mailSettings>
<smtp configSource="your-source-file">
</smtp>
</mailSettings>
</system.net>
파일 -
<smtp from="noreply@example.com">
<network
host="your-host"
port="your-port"
userName="your-user-name"
password="your-password"/>
</smtp>
내 소프트웨어는 레지스트리에도 제작 중에도 저장합니다.