{"id":49143,"date":"2025-04-17T12:35:00","date_gmt":"2025-04-17T12:35:00","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=49143"},"modified":"2026-02-21T07:28:04","modified_gmt":"2026-02-21T07:28:04","slug":"how-to-configure-amazon-ses-smtp-on-godaddy-vps-with-cpanel-complete-guide","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-configure-amazon-ses-smtp-on-godaddy-vps-with-cpanel-complete-guide\/","title":{"rendered":"How to Configure Amazon SES SMTP on GoDaddy VPS with cPanel \u2013 Complete Guide"},"content":{"rendered":"\n<p>Absolutely! Here&#8217;s a comprehensive blog tutorial that covers everything you experienced \u2014 from configuring Amazon SES SMTP on a GoDaddy VPS to resolving port blocks and certificate issues \u2014 all in one clear, step-by-step guide.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udce7 How to Configure Amazon SES SMTP on GoDaddy VPS with cPanel \u2013 Complete Guide (2026)<\/h1>\n\n\n\n<p>If you&#8217;re trying to set up Amazon SES to send reliable, secure emails from your WordPress website hosted on a <strong>GoDaddy VPS with cPanel<\/strong>, you&#8217;ve probably hit a few frustrating walls \u2014 like <strong>SSL handshake failures<\/strong>, <strong>SMTP connection issues<\/strong>, or <strong>silent email failures<\/strong>.<\/p>\n\n\n\n<p>In this complete tutorial, we\u2019ll walk you through:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udd27 How to set up Amazon SES SMTP in WordPress<\/li>\n\n\n\n<li>\ud83d\uded1 Common GoDaddy VPS issues (like port blocking and SSL errors)<\/li>\n\n\n\n<li>\u2705 The hidden workaround using port <code>2587<\/code><\/li>\n\n\n\n<li>\ud83d\udd10 Security best practices<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\ude80 Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A VPS hosted with GoDaddy and cPanel access<\/li>\n\n\n\n<li>A verified domain in <a href=\"https:\/\/console.aws.amazon.com\/ses\/\" target=\"_blank\" rel=\"noopener\">Amazon SES<\/a><\/li>\n\n\n\n<li>WordPress + <a href=\"https:\/\/wordpress.org\/plugins\/wp-mail-smtp\/\" target=\"_blank\" rel=\"noopener\">WP Mail SMTP<\/a> plugin installed<\/li>\n\n\n\n<li>SES SMTP credentials (generated from SES)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddf0 Step 1: Verify Your Domain in Amazon SES<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Amazon SES Console &gt; Verified Identities<\/strong><\/li>\n\n\n\n<li>Click <strong>Create Identity<\/strong><\/li>\n\n\n\n<li>Choose <strong>Domain<\/strong><\/li>\n\n\n\n<li>Enter your domain (e.g., <code>yourdomain.com<\/code>)<\/li>\n\n\n\n<li>Copy the DNS records:\n<ul class=\"wp-block-list\">\n<li>\u2705 TXT (for domain verification)<\/li>\n\n\n\n<li>\u2705 CNAME (for DKIM signing)<\/li>\n\n\n\n<li>\u2705 SPF (optional but recommended)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Add these to your domain\u2019s DNS using cPanel or your DNS provider<\/li>\n\n\n\n<li>Wait for SES to show <strong>&#8220;Verified&#8221;<\/strong> for the domain<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd10 Step 2: Generate Amazon SES SMTP Credentials<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the SES console, go to <strong>SMTP Settings<\/strong><\/li>\n\n\n\n<li>Click <strong>Create SMTP Credentials<\/strong><\/li>\n\n\n\n<li>It will create a new IAM user and give you:\n<ul class=\"wp-block-list\">\n<li>\u2705 SMTP Username<\/li>\n\n\n\n<li>\u2705 SMTP Password<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Save these securely.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\u2699\ufe0f Step 3: Configure WP Mail SMTP Plugin in WordPress<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>WP Mail SMTP &gt; Settings<\/strong><\/li>\n\n\n\n<li>Choose <strong>Mailer: Other SMTP<\/strong><\/li>\n\n\n\n<li>Configure the following:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Field<\/th><th>Value<\/th><\/tr><\/thead><tbody><tr><td>SMTP Host<\/td><td><code>email-smtp.ap-south-1.amazonaws.com<\/code><\/td><\/tr><tr><td>Port<\/td><td><code>2587<\/code> \u2705 (Amazon&#8217;s alternate STARTTLS port)<\/td><\/tr><tr><td>Encryption<\/td><td><code>TLS<\/code> (STARTTLS)<\/td><\/tr><tr><td>Authentication<\/td><td>Yes<\/td><\/tr><tr><td>Username<\/td><td>Your SMTP username from SES<\/td><\/tr><tr><td>Password<\/td><td>Your SMTP password from SES<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Save settings<\/li>\n\n\n\n<li>Send a test email from <strong>WP Mail SMTP &gt; Email Test<\/strong><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde8 Common Issues (and Fixes)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u274c Problem #1: SMTP Error \u2013 Could Not Connect to Host<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">SMTP <span class=\"hljs-built_in\">Error<\/span>: Could not connect to SMTP host. Connection failed.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>\ud83d\udd0d <strong>Cause<\/strong>: GoDaddy VPS blocks or redirects ports <code>465<\/code> and <code>587<\/code><\/p>\n\n\n\n<p>\u2705 <strong>Fix<\/strong>: Use port <code>2587<\/code> with <code>TLS<\/code> encryption \u2014 this is a <strong>hidden gem<\/strong> that usually works<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\u274c Problem #2: SSL Certificate Verify Failed<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">stream_socket_enable_crypto(): SSL operation failed <span class=\"hljs-keyword\">with<\/span> code <span class=\"hljs-number\">1<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>\ud83d\udd0d <strong>Cause<\/strong>: Expired or invalid certificate \u2014 but not from Amazon SES! You&#8217;re actually being <strong>routed to GoDaddy&#8217;s own mail relay (<code>s132-148-28-255.secureserver.net<\/code>)<\/strong> with an expired cert.<\/p>\n\n\n\n<p>\u2705 <strong>Fix<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Switch to port <code>2587<\/code> so SES connection isn&#8217;t intercepted<\/li>\n\n\n\n<li>Or use <strong>Amazon SES API<\/strong> to bypass SMTP entirely<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddea Bonus: Verifying Your Server Is Connecting to Amazon, Not GoDaddy<\/h2>\n\n\n\n<p>Run this in SSH:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">openssl<\/span> <span class=\"hljs-selector-tag\">s_client<\/span> <span class=\"hljs-selector-tag\">-connect<\/span> <span class=\"hljs-selector-tag\">email-smtp<\/span><span class=\"hljs-selector-class\">.ap-south-1<\/span><span class=\"hljs-selector-class\">.amazonaws<\/span><span class=\"hljs-selector-class\">.com<\/span><span class=\"hljs-selector-pseudo\">:465<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If you see:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CN = s132-148-28-255.secureserver.net\n<\/code><\/span><\/pre>\n\n\n<p>\u274c You&#8217;re being redirected by your hosting provider.<\/p>\n\n\n\n<p>\u2705 Use this instead to test 2587:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">openssl<\/span> <span class=\"hljs-selector-tag\">s_client<\/span> <span class=\"hljs-selector-tag\">-starttls<\/span> <span class=\"hljs-selector-tag\">smtp<\/span> <span class=\"hljs-selector-tag\">-connect<\/span> <span class=\"hljs-selector-tag\">email-smtp<\/span><span class=\"hljs-selector-class\">.ap-south-1<\/span><span class=\"hljs-selector-class\">.amazonaws<\/span><span class=\"hljs-selector-class\">.com<\/span><span class=\"hljs-selector-pseudo\">:2587<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You should see a valid Amazon certificate!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd04 Alternative: Use Amazon SES API (Recommended for Production)<\/h2>\n\n\n\n<p>Instead of SMTP, switch to <strong>SES API integration<\/strong>, which:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is more secure<\/li>\n\n\n\n<li>Doesn\u2019t require SMTP ports<\/li>\n\n\n\n<li>Avoids all SSL\/cert errors<\/li>\n<\/ul>\n\n\n\n<p>WP Mail SMTP supports it directly under <strong>Amazon SES Mailer<\/strong> \u2014 just generate IAM credentials with <code>ses:SendEmail<\/code> permission and connect.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Final Recommendations<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option<\/th><th>Works on GoDaddy VPS?<\/th><th>Reliability<\/th><th>Difficulty<\/th><\/tr><\/thead><tbody><tr><td>SMTP Port 2587<\/td><td>\u2705 Yes<\/td><td>\u2705 High<\/td><td>\ud83d\udfe2 Easy<\/td><\/tr><tr><td>SMTP Port 587\/465<\/td><td>\u274c Blocked\/Intercepted<\/td><td>\u274c Low<\/td><td>\ud83d\udd34 Broken<\/td><\/tr><tr><td>Amazon SES API<\/td><td>\u2705 Yes<\/td><td>\u2705\u2705 Best<\/td><td>\ud83d\udfe1 Medium<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf Conclusion<\/h2>\n\n\n\n<p>Setting up Amazon SES SMTP on a GoDaddy VPS may seem painful at first, but with the <strong>right port (2587)<\/strong> and configurations, you can bypass the restrictions and send secure, reliable emails from your WordPress site.<\/p>\n\n\n\n<p>For production-grade setups, consider <strong>switching to SES API<\/strong> \u2014 it\u2019s faster, safer, and immune to server-level mail hijacking.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<p>If you have questions or want help configuring Amazon SES API or SendGrid\/Gmail as fallback SMTP \u2014 drop a comment or reach out!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Absolutely! Here&#8217;s a comprehensive blog tutorial that covers everything you experienced \u2014 from configuring Amazon SES SMTP on a GoDaddy VPS to resolving port blocks and certificate issues \u2014 all&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-49143","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=49143"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49143\/revisions"}],"predecessor-version":[{"id":58958,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49143\/revisions\/58958"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=49143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=49143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=49143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}