我讀了很多文章,誰解釋如何發送電子郵件與smtp,就像這樣Send email using GMail SMTP server from PHP page 我有一個雲服務器和本地主機設置,都是相同的(Centos 6,通過yum只安裝httpd,php和mysql)。 iptables是一樣的:輸出端口打開,輸入只有22和80.發送電子郵件與PHP腳本錯誤smtp.gmail梨Centos
我安裝了pear Mail和pear Net_SMTP以便與smtp.gmail.com一起使用。 phpinfo();顯示openssl已啓用。
我使用這個代碼:
<?php require_once "Mail.php";
$from = "<from.gmail.com>";
$to = "<to.yahoo.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "<myaccount.gmail.com>";
$password = "password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?> <!-- end of php tag-->
在我的本地服務器腳本工作,我收到的電子郵件在我的Gmail帳戶。但在我的雲服務器上,使用相同的腳本,我得到這個錯誤:(與調試)
ErrorFailed to connect to ssl://smtp.gmail.com:465 [SMTP:無法連接套接字:權限被拒絕(代碼:-1,迴應:)]調試:發送:退出
我搜查了很多,我看到有人說465端口被阻塞時發生錯誤。
因此,我檢查我的iptables,我的連接等,輸出端口465打開。
我沒有使用測試: 的OpenSSL的s_client.First -verify 0 -connect smtp.gmail.com:465 ,我得到了這樣的結果:
verify depth is 0
CONNECTED(00000003)
depth=2 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = smtp.gmail.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
i:/C=US/O=Google Inc/CN=Google Internet Authority
1 s:/C=US/O=Google Inc/CN=Google Internet Authority
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDWzCCAsSgAwIBAgIKFeQVggADAAA7NjANBgkqhkiG9w0BAQUFADBGMQswCQYD
VQQGEwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzEiMCAGA1UEAxMZR29vZ2xlIElu
dGVybmV0IEF1dGhvcml0eTAeFw0xMTExMTgwMTU3MTdaFw0xMjExMTgwMjA3MTda
MGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1N
b3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRcwFQYDVQQDEw5zbXRw
LmdtYWlsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuK+t5ZRq6c3K
kWPwLuIcPa6DgiBURaQK9akP4OBoXKJ6bqYIQWsS4C3RgnOaGaDENadxHSNZ5Qpl
Vqg2S54N54SM5OXwOq0NtrqdlbhgigB53TZouiJvnLDxxIexSOn2Gx1qyZF2z8Ii
MoUhHuStWgW5YoOHje8z6K9xQdYkQp0CAwEAAaOCASwwggEoMB0GA1UdDgQWBBTs
OL4jbtJ5l8B6/eoEvv30KEiTrjAfBgNVHSMEGDAWgBS/wDDr9UMRPme6npH7/Gra
42sSJDBbBgNVHR8EVDBSMFCgTqBMhkpodHRwOi8vd3d3LmdzdGF0aWMuY29tL0dv
b2dsZUludGVybmV0QXV0aG9yaXR5L0dvb2dsZUludGVybmV0QXV0aG9yaXR5LmNy
bDBmBggrBgEFBQcBAQRaMFgwVgYIKwYBBQUHMAKGSmh0dHA6Ly93d3cuZ3N0YXRp
Yy5jb20vR29vZ2xlSW50ZXJuZXRBdXRob3JpdHkvR29vZ2xlSW50ZXJuZXRBdXRo
b3JpdHkuY3J0MCEGCSsGAQQBgjcUAgQUHhIAVwBlAGIAUwBlAHIAdgBlAHIwDQYJ
KoZIhvcNAQEFBQADgYEAQiMlHuQLRFqR10UsSg5WTNe3vagbdnBLAkdhvAf90B5a
9beBxJH2/ylTSIGfD2uceAqzcsQe6Ouy4C9r3rz86qA1dhdtIcPg6uoZb+E2qhE5
UaOJOPO4rHInX9kscBxh+baHbpBMh+ch6v5L8plss8hd0id8C4g10YKzwcgPYlQ=
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
issuer=/C=US/O=Google Inc/CN=Google Internet Authority
---
No client certificate CA names sent
---
SSL handshake has read 1850 bytes and written 299 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : RC4-SHA
Session-ID: 55E90A8854BB04C962AB8AD7D231C89291E62B28EC93F4189CFD512B2EFD43B6
Session-ID-ctx:
Master-Key: C454B3ED7E5C522B745F0E2EBF45BDEADFAD2CE29ECE945C1CA6EBA1629921577FEECFF968D896E39CF4E0057731CD26
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
TLS session ticket lifetime hint: 100800 (seconds)
TLS session ticket:
0000 - 75 be ab 14 ff bf e3 74-61 4f 98 e6 ec 58 ae ab u......taO...X..
0010 - 50 2f 20 f5 12 14 ae b5-11 dd 2c c1 9e 99 36 b1 P/ .......,...6.
0020 - 9a 66 5b 76 15 c8 0e 7f-07 ce ce e1 4c b3 f4 12 .f[v........L...
0030 - 38 c8 43 2d a2 c7 f9 62-17 4f da 82 4f 4b 12 93 8.C-...b.O..OK..
0040 - af 31 9e d5 90 8d 3e 4c-06 d6 73 30 fb b6 95 80 .1....>L..s0....
0050 - 59 1c 65 e3 d3 51 2e a7-48 15 11 ba 9f 72 89 12 Y.e..Q..H....r..
0060 - 9a 68 63 df 65 22 0f cb-60 b7 cf 3c b4 c6 f9 92 .hc.e"..`..<....
0070 - a0 c1 34 d7 06 31 97 ef-e6 8a bf b8 14 d9 72 b0 ..4..1........r.
0080 - 13 d9 dd df ce 48 a1 83-74 53 d6 fe b0 5a 53 a1 .....H..tS...ZS.
0090 - ee d0 9e b3 ....
Start Time: 1335462088
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
所以,我認爲問題不與「封鎖的港口」有關係。 我也試過端口587 ...
我發送一條消息給我的主機詢問ISP是否可以阻止這些端口,他們告訴我他們不阻止任何端口,客戶端(我)完全控制服務器。
我不知道什麼更多可以導致這個錯誤,我現在可以做什麼。 也許一些配置文件我沒有看到。
任何人有一些建議,以幫助我或建議更多的測試我可以做得到更多的信息,爲什麼我得到這個錯誤,並解決這個問題?
感謝
謝謝Superbiji,這正是我需要的。我忘了SELINUX,它阻止了我的apache用戶。我禁用它,一切正常。非常感謝,我試圖投票,但說我不能,因爲我沒有聲譽 – xbrpiatto 2012-04-26 21:28:04