I get the following error: Authentication Credentials Invalid.
I've double checked the username (Access key ID) and password (Secret Token) a million times. I double checked the base64 sent to the server and it's correct. User has correct access rights. All outbound traffic from EC2 server is allowed. SELinux is disabled. I've escaped special characters, tried different credentials. Tried using a user with more access.
I'm using PHPMailer with AWS SES.
Here is the code:
$mail = new PHPMailer; $mail->isSMTP(); $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->SMTPDebug = 4; $mail->setFrom('braydenrhancock@gmail.com', 'Sender Name'); $mail->addAddress('braydenrhancock@gmail.com', 'Recipient Name'); $mail->Username = 'AKIAINH6PZ2UQKDK2BTA'; $mail->Password = 'GvMMa7R3fAXZGacl3gyfA86J0RxJLO7FQte9vrof'; $mail->Host = 'email-smtp.us-east-1.amazonaws.com'; $mail->Subject = 'Amazon SES test (SMTP interface accessed using PHP)'; $mail->Body = '<h1>Email Test</h1>'; $mail->Port = 587; $mail->isHTML(true); $mail->AltBody = "Email Test\r\nThis email was sent through the Amazon SES SMTP interface using the PHPMailer class."; if(!$mail->send()) { echo "Email not sent. " , $mail->ErrorInfo , PHP_EOL; } else { echo "Email sent!" , PHP_EOL; }
Here is the full output:
2017-11-06 01:09:49 Connection: opening to email-smtp.us-east-1.amazonaws.com:587, timeout=300, options=array () 2017-11-06 01:09:49 Connection: opened 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "220 email-smtp.amazonaws.com ESMTP SimpleEmailService-2367521455 ZxpFMwcwQB6LGlJ2noyc" 2017-11-06 01:09:49 SERVER -> CLIENT: 220 email-smtp.amazonaws.com ESMTP SimpleEmailService-2367521455 ZxpFMwcwQB6LGlJ2noyc 2017-11-06 01:09:49 CLIENT -> SERVER: EHLO 34.200.216.237 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-email-smtp.amazonaws.com" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-8BITMIME" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-SIZE 10485760" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-STARTTLS" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250-STARTTLS" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-AUTH PLAIN LOGIN" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250-STARTTLS250-AUTH PLAIN LOGIN" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250 Ok" 2017-11-06 01:09:49 SERVER -> CLIENT: 250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250-STARTTLS250-AUTH PLAIN LOGIN250 Ok 2017-11-06 01:09:49 CLIENT -> SERVER: STARTTLS 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "220 Ready to start TLS" 2017-11-06 01:09:49 SERVER -> CLIENT: 220 Ready to start TLS 2017-11-06 01:09:49 CLIENT -> SERVER: EHLO 34.200.216.237 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-email-smtp.amazonaws.com" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-8BITMIME" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-SIZE 10485760" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-STARTTLS" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250-STARTTLS" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250-AUTH PLAIN LOGIN" 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250-STARTTLS250-AUTH PLAIN LOGIN" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "250 Ok" 2017-11-06 01:09:49 SERVER -> CLIENT: 250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250-STARTTLS250-AUTH PLAIN LOGIN250 Ok 2017-11-06 01:09:49 Auth method requested: UNKNOWN 2017-11-06 01:09:49 Auth methods available on the server: PLAIN,LOGIN 2017-11-06 01:09:49 Auth method selected: LOGIN 2017-11-06 01:09:49 CLIENT -> SERVER: AUTH LOGIN 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "334 VXNlcm5hbWU6" 2017-11-06 01:09:49 SERVER -> CLIENT: 334 VXNlcm5hbWU6 2017-11-06 01:09:49 CLIENT -> SERVER: QUtJQUlOSDZQWjJVUUtESzJCVEE= 2017-11-06 01:09:49 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:49 SMTP -> get_lines(): $str is "334 UGFzc3dvcmQ6" 2017-11-06 01:09:49 SERVER -> CLIENT: 334 UGFzc3dvcmQ6 2017-11-06 01:09:49 CLIENT -> SERVER: R3ZNTWE3UjNmQVhaR2FjbDNneWZBODZKMFJ4SkxPN0ZRdGU5dnJvZg== 2017-11-06 01:09:50 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:50 SMTP -> get_lines(): $str is "535 Authentication Credentials Invalid" 2017-11-06 01:09:50 SERVER -> CLIENT: 535 Authentication Credentials Invalid 2017-11-06 01:09:50 SMTP ERROR: Password command failed: 535 Authentication Credentials Invalid SMTP Error: Could not authenticate. 2017-11-06 01:09:50 CLIENT -> SERVER: QUIT 2017-11-06 01:09:50 SMTP -> get_lines(): $data is "" 2017-11-06 01:09:50 SMTP -> get_lines(): $str is "221 Bye" 2017-11-06 01:09:50 SERVER -> CLIENT: 221 Bye 2017-11-06 01:09:50 Connection: closed SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Email not sent. SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting