{"id":538,"date":"2025-10-07T21:29:55","date_gmt":"2025-10-07T12:29:55","guid":{"rendered":"https:\/\/blog.gerd.kr\/?p=538"},"modified":"2025-10-12T17:46:16","modified_gmt":"2025-10-12T08:46:16","slug":"mail-%ec%84%9c%eb%b2%84-%ec%84%a4%ec%a0%95-%ec%a4%91%ec%97%90-%eb%a7%89%ed%98%94%eb%8d%98-%ea%b1%b0-1","status":"publish","type":"post","link":"https:\/\/blog.gerd.kr\/?p=538","title":{"rendered":"Mail \uc11c\ubc84 \uc124\uc815 \uc911\uc5d0 \ub9c9\ud614\ub358 \uac70 &#8211; 1"},"content":{"rendered":"\n<p>\uc6b0\ubd84\ud22c\uc5d0 Postfix \ub97c \uc774\uc6a9\ud574\uc11c \uba54\uc77c \uc11c\ubc84\ub97c \uc124\uc815\ud558\uace0 \uc788\ub2e4. Postfix \uc124\uce58 \uc790\uccb4\ub294 \uc544\ubb34\ub7f0 \ubb38\uc81c\uac00 \uc5c6\uc5c8\ub294\ub370, opendkim \uc124\uc815, \uadf8 \uc911\uc5d0\uc11c DNS \uc11c\ubc84\uc5d0 TXT \ub808\ucf54\ub4dc\ub97c \ub4f1\ub85d\ud558\ub294 \ubd80\ubd84\uc5d0\uc11c \ub9c9\ud614\ub2e4. <\/p>\n\n\n\n<p>\ubcc4\ub2e4\ub978 \uc635\uc158 \uc5c6\uc774 \ud0a4\ub97c \uc0dd\uc131\ud558\uba74&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ opendkim-genkey -s mail -d gerd.kr<\/code><\/pre>\n\n\n\n<p>\ubcf4\uc548\uc744 \uc704\ud574 2048 bits \uc758 \ud0a4\ub97c \uc0dd\uc131\ud55c\ub2e4. \uc0dd\uc131\ub418\ub294 mail.txt \ud30c\uc77c\uc744 \uc5f4\uc5b4\ubcf4\uba74 \ub531 \ubd99\uc5ec\ub123\uae30 \uc88b\uac8c 255 \uc790 \ub2e8\uc704\ub85c \ub530\uc634\ud45c\ub85c \ubb36\uc5b4\uc11c \uba87\uac1c\uc758 \ubb38\uc7a5\uc73c\ub85c \ub098\ub220\ub1a8\ub2e4. \uc81c\ub300\ub85c \ud45c\uc900\uc744 \uc9c0\uc6d0\ud558\ub294 domain service \uc5d0\uc11c\ub294 \uadf8\ub0e5 \uac16\ub2e4 \ub123\uc73c\uba74 \ub418\ub294\ub370, \ub0b4\uac00 \uc0ac\uc6a9\ud558\ub294 hosting.kr \uc5d0\uc11c\ub294 \uc804\uccb4\ub97c 255 \uc790 \uc774\ud558\ub85c \uc81c\ud55c\ud558\uace0 \uc788\uc5b4\uc11c \uc800\uac78\ub85c\ub294 \ud55c\uacc4\ub97c \ub118\uc5b4 \ubc84\ub9b0\ub2e4.<\/p>\n\n\n\n<p>\uc774\ub798\uc800\ub798 \uac80\uc0c9\ud574\ubcf4\ub2c8\uae4c, \ud55c <a href=\"https:\/\/gbminnote.com\/entry\/opendkim-\uc124\uce58-\uc124\uc815-DKIM-DMARC#t9\">\ube14\ub85c\uadf8<\/a>\uc5d0\uc11c \uc774 \ubb38\uc81c\ub97c \uc9da\uace0 \ud574\uacb0\ucc45\uc744 \uc81c\uc2dc\ud558\uace0 \uc788\uc5c8\ub2e4. tinydns \ud615\uc2dd\uc774\ub77c\uace0 \ub9d0\ud558\uace0 \uc788\ub294\ub370, 1024 bits \uc9dc\ub9ac \ud0a4\ub97c \ub9d0\ud558\ub294 \uac70\ub2e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/dkimcore.org\/tools\">https:\/\/dkimcore.org\/tools<\/a><\/p>\n\n\n\n<p>\uc800 \ube14\ub85c\uadf8\uc5d0 \uc801\ud78c \ub300\ub85c \uc800 \uc0ac\uc774\ud2b8\uc5d0\uc11c \uc0dd\uc131\ud574\ub3c4 \ub418\uace0, \uadf8\ub0e5 \uc635\uc158 \ud558\ub098\ub97c \ubd99\uc5ec\uc11c \uc0dd\uc131\ud574\ub3c4 \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ opendkim-genkey -s mail -d gerd.kr --bits=1024<\/code><\/pre>\n\n\n\n<p>domain.com.txt \ud30c\uc77c\uc744 \uc5f4\uc5b4\ubcf4\uba74, \ud0a4\uac00 \ub531 255\uc790 \uc774\ud558\ub85c \uc0dd\uc131\ub418\uc5b4 \uc788\ub2e4. \uc774\ud6c4\uc5d0 \uac80\uc0c9\ud574\ubcf4\ub2c8 \uad6c\uae00 \uc11c\ud3ec\ud2b8\uc5d0 \ud574\ub2f9\ud558\ub294 \ub0b4\uc6a9\uc774 \uc798 \uc124\uba85\ub418\uc5b4 \uc788\uc5c8\ub2e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/support.google.com\/a\/answer\/11612790?sjid=10864113988318137909-NC#dkim-verify-txt-char-limits\">https:\/\/support.google.com\/a\/answer\/11612790?sjid=10864113988318137909-NC#dkim-verify-txt-char-limits<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\uadf8\ub807\uac8c \uc124\uc815\uc744 \ub05d\ub0b4\uace0 \ub4dc\ub514\uc5b4 \ud14c\uc2a4\ud2b8!! \uad6c\uae00 \uacc4\uc815\uc73c\ub85c \uba54\uc77c\uc744 \ubcf4\ub0b4\ubcf4\uc558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ echo \"postfix mail sending test\" | mail  -s \"Hello World\"  nomalaid@gmail.com  <\/code><\/pre>\n\n\n\n<p>\ub450\uadfc\ub450\uadfc\ud558\uba70 \ud55c\ucc38\uc744 \uae30\ub2e4\ub838\ub294\ub370, \uba54\uc77c\uc774 \uc548 \uc628\ub2e4. \uc65c \uc548 \uc624\ub294\uc9c0 \ub85c\uadf8\ub97c \ubcf4\uba74&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ tail -n 10 \/var\/log\/mail.log                                                                                                                                \n...\n...\n2025-10-07T21:13:37.879083+09:00 miniboxx postfix\/smtp&#91;259147]: B053280DB8: to=, relay=gmail-smtp-in.l.google.com&#91;173.194.174.26]:25, delay=4.2, delays=0.12\/0.01\/2.9\/1.2, dsn=5.7.25, status=bounced (host gmail-smtp-in.l.google.com&#91;173.194.174.26] said: 550-5.7.25 &#91;122.43.156.87] The IP address sending this message does not have a 550-5.7.25 PTR record setup, or the corresponding forward DNS entry does not 550-5.7.25 match the sending IP. As a policy, <mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><strong>Gmail does not accept messages 550-5.7.25 from<\/strong> <strong>IPs with missing PTR records<\/strong>.<\/mark> For more information, go to 550-5.7.25  https:\/\/support.google.com\/a?p=sender-guidelines-ip  550-5.7.25 To learn more about Gmail requirements for bulk senders, visit 550 5.7.25  https:\/\/support.google.com\/a?p=sender-guidelines. d9443c01a7336-28e8d1a1138si100282245ad.308 - gsmtp (in reply to end of DATA command))\n...\n...                                                                                                                                                 <\/code><\/pre>\n\n\n\n<p>PTR \ub808\ucf54\ub4dc\uac00 \uc124\uc815\uc774 \uc548\ub41c \ub3c4\uba54\uc778\uc73c\ub85c \uc628 \uba54\uc77c\uc740 \uc548 \ubc1b\ub294\ub2e8\ub2e4. PTR \ub808\ucf54\ub4dc\ub294 \ub610 \ubb54\ub370&#8230;<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>DNS PTR \ub808\ucf54\ub4dc \uc124\uc815\uc740 IP \uc8fc\uc18c\uc5d0 \ub300\ud55c \ub3c4\uba54\uc778 \uc774\ub984\uc744 \uc5ed\ubc29\ud5a5\uc73c\ub85c \ub9e4\ud551\ud558\ub294 \uac83\uc73c\ub85c, \uc77c\ubc18\uc801\uc778&nbsp;<br><a href=\"https:\/\/www.google.com\/search?q=DNS+%EC%84%A4%EC%A0%95&amp;newwindow=1&amp;client=safari&amp;sca_esv=c13554951836a176&amp;rls=en&amp;sxsrf=AE3TifMcT2l0wpCZMxKor-szgumuBmNJNw%3A1759665657897&amp;ei=-V3iaMvBNsje1e8P8-XVwAk&amp;ved=2ahUKEwiygYGCgo2QAxXIk1YBHdJQF7cQgK4QegQIARAB&amp;uact=5&amp;oq=dns+ptr+record+%EC%84%A4%EC%A0%95&amp;gs_lp=Egxnd3Mtd2l6LXNlcnAiFWRucyBwdHIgcmVjb3JkIOyEpOyglTIIEAAYgAQYogQyCBAAGIAEGKIEMggQABiABBiiBDIIEAAYogQYiQUyCBAAGIAEGKIESI0gUN0WWN4ZcAF4AJABAJgBqwGgAekEqgEDMC40uAEDyAEA-AEBmAIDoAK3AsICCBAAGLADGO8FwgILEAAYgAQYsAMYogTCAgsQABiwAxiiBBiJBZgDAIgGAZAGBZIHAzEuMqAH1Q-yBwMwLjK4B6oCwgcFMC4xLjLIBww&amp;sclient=gws-wiz-serp&amp;mstk=AUtExfDFwnjO6YX8qvoBXMsG0taCfil7xEMDOSkvV4NbVqtVC6-yZZVbSNWGXB4Iq0LfFqnJyXKavVmI4rC-nFOYkx5K4oGfSiVlslvVTCg2734_WIKPuDNzgQYqy_DeL2ZKt5ydc3J48dX4PXM19Y4m5l-x0-8XZ6Hy9IW0hptfk_liyEMoJJkIho5kCUDy1K3lpLB4dxurKEcFmxLWNwHCXoPbGPeRE6I_Mj4A3l6WunkmtdcQHRhgI6quI17QTeiOw7fCQhJccK8FWF-Cfs3lVjKD&amp;csui=3\">DNS \uc124\uc815<\/a>\uacfc \ub2ec\ub9ac IP \uc8fc\uc18c\ub97c \ud560\ub2f9\ud55c ISP\ub098 \ud074\ub77c\uc6b0\ub4dc \uc11c\ube44\uc2a4(\uc608:&nbsp;<a href=\"https:\/\/repost.aws\/ko\/knowledge-center\/route-53-reverse-dns\" target=\"_blank\" rel=\"noreferrer noopener\">AWS<\/a>)\uc5d0 \ubb38\uc758\ud558\uac70\ub098, IP \uc8fc\uc18c \uc18c\uc720\uc790\uac00 \uc9c1\uc811 \uc5ed\ubc29\ud5a5 \ud638\uc2a4\ud305 \uc601\uc5ed\uc744 \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \uc124\uc815 \uc2dc IP \uc8fc\uc18c\ub97c \uc5ed\uc21c\uc73c\ub85c \ub098\uc5f4\ud558\uace0 &#8220;.in-addr.arpa&#8221;(IPv4) \ub610\ub294 &#8220;.ip6.arpa&#8221;(IPv6)\ub97c \ubd99\uc5ec\uc11c DNS \ub808\ucf54\ub4dc\ub97c \uc0dd\uc131\ud558\uace0, \uac12\uc73c\ub85c \ud574\ub2f9 IP \uc8fc\uc18c\uc5d0 \ub9e4\ud551\ub420&nbsp;<a href=\"https:\/\/www.google.com\/search?q=FQDN%28%EC%A0%95%EA%B7%9C%ED%99%94%EB%90%9C+%EB%8F%84%EB%A9%94%EC%9D%B8+%EC%9D%B4%EB%A6%84%29&amp;newwindow=1&amp;client=safari&amp;sca_esv=c13554951836a176&amp;rls=en&amp;sxsrf=AE3TifMcT2l0wpCZMxKor-szgumuBmNJNw%3A1759665657897&amp;ei=-V3iaMvBNsje1e8P8-XVwAk&amp;ved=2ahUKEwiygYGCgo2QAxXIk1YBHdJQF7cQgK4QegQIARAD&amp;uact=5&amp;oq=dns+ptr+record+%EC%84%A4%EC%A0%95&amp;gs_lp=Egxnd3Mtd2l6LXNlcnAiFWRucyBwdHIgcmVjb3JkIOyEpOyglTIIEAAYgAQYogQyCBAAGIAEGKIEMggQABiABBiiBDIIEAAYogQYiQUyCBAAGIAEGKIESI0gUN0WWN4ZcAF4AJABAJgBqwGgAekEqgEDMC40uAEDyAEA-AEBmAIDoAK3AsICCBAAGLADGO8FwgILEAAYgAQYsAMYogTCAgsQABiwAxiiBBiJBZgDAIgGAZAGBZIHAzEuMqAH1Q-yBwMwLjK4B6oCwgcFMC4xLjLIBww&amp;sclient=gws-wiz-serp&amp;mstk=AUtExfDFwnjO6YX8qvoBXMsG0taCfil7xEMDOSkvV4NbVqtVC6-yZZVbSNWGXB4Iq0LfFqnJyXKavVmI4rC-nFOYkx5K4oGfSiVlslvVTCg2734_WIKPuDNzgQYqy_DeL2ZKt5ydc3J48dX4PXM19Y4m5l-x0-8XZ6Hy9IW0hptfk_liyEMoJJkIho5kCUDy1K3lpLB4dxurKEcFmxLWNwHCXoPbGPeRE6I_Mj4A3l6WunkmtdcQHRhgI6quI17QTeiOw7fCQhJccK8FWF-Cfs3lVjKD&amp;csui=3\">FQDN(\uc815\uaddc\ud654\ub41c \ub3c4\uba54\uc778 \uc774\ub984)<\/a>\uc744 \uc785\ub825\ud569\ub2c8\ub2e4.&nbsp;<\/p>\n<\/blockquote>\n\n\n\n<p>\uc774\ub77c\uace0 \uad6c\uae00 AI \uac00 \uc694\uc57d\ud574 \uc92c\ub2e4. \uadf8\ub9ac\uace0 \uc124\uc815\ud558\ub294 \ubc95\uc744 \uc815\ub9ac\ud574 \ub454 \ube14\ub85c\uadf8\uac00 \uac80\uc0c9 \ub9ac\uc2a4\ud2b8 \ucd5c\uc0c1\ub2e8\uc5d0 \ubc14\ub85c \ub72c\ub2e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/siane.tistory.com\/291\">https:\/\/siane.tistory.com\/291<\/a><\/p>\n\n\n\n<p>KT \ub294 \ubc14\ub85c \uc124\uc815\ud560 \uc218 \uc788\ub294 \uc0ac\uc774\ud2b8\ub97c \uc81c\uacf5\ud558\uace0 \uc788\ub2e8\ub2e4. \ub09c LGU+ \ub97c \uc4f0\ub294\ub370\ub2e4, \uc720\ub3d9 IP \uc778\ub370 \uacfc\uc5f0 \ud574 \uc904\ub7f0\uc9c0&#8230;<\/p>\n\n\n\n<p>\ud734\uc77c\uc5d0 \uc791\uc5c5\ud558\ub294 \uac70\ub77c \ub2f9\uc7a5 \ud574 \ubcfc \uc218\uac00 \uc5c6\ub2e4&#8230; \ud558&#8230; <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc6b0\ubd84\ud22c\uc5d0 Postfix \ub97c \uc774\uc6a9\ud574\uc11c \uba54\uc77c \uc11c\ubc84\ub97c \uc124\uc815\ud558\uace0 \uc788\ub2e4. Postfix \uc124\uce58 \uc790\uccb4\ub294 \uc544\ubb34\ub7f0 \ubb38\uc81c\uac00 \uc5c6\uc5c8\ub294\ub370, opendkim \uc124\uc815, \uadf8 \uc911\uc5d0\uc11c DNS \uc11c\ubc84\uc5d0 TXT \ub808\ucf54\ub4dc\ub97c \ub4f1\ub85d\ud558\ub294 \ubd80\ubd84\uc5d0\uc11c \ub9c9\ud614\ub2e4. \ubcc4\ub2e4\ub978 \uc635\uc158 \uc5c6\uc774 \ud0a4\ub97c \uc0dd\uc131\ud558\uba74&#8230; \ubcf4\uc548\uc744 \uc704\ud574 2048 bits \uc758 \ud0a4\ub97c \uc0dd\uc131\ud55c\ub2e4. \uc0dd\uc131\ub418\ub294 mail.txt \ud30c\uc77c\uc744 \uc5f4\uc5b4\ubcf4\uba74 \ub531 \ubd99\uc5ec\ub123\uae30 \uc88b\uac8c 255 \uc790 \ub2e8\uc704\ub85c \ub530\uc634\ud45c\ub85c \ubb36\uc5b4\uc11c \uba87\uac1c\uc758 \ubb38\uc7a5\uc73c\ub85c \ub098\ub220\ub1a8\ub2e4. \uc81c\ub300\ub85c \ud45c\uc900\uc744 \uc9c0\uc6d0\ud558\ub294 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[161],"tags":[169,167,166,168,165,158],"class_list":["post-538","post","type-post","status-publish","format-standard","hentry","category-ubuntu","tag-domain","tag-opendkim","tag-postfix","tag-ptr","tag-165","tag-158"],"_links":{"self":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=538"}],"version-history":[{"count":7,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/538\/revisions"}],"predecessor-version":[{"id":547,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=\/wp\/v2\/posts\/538\/revisions\/547"}],"wp:attachment":[{"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gerd.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}