天天看點

技術筆記:Indy IdSMTP支援騰訊QQ郵箱郵件發送

1、騰訊QQ郵箱的授權碼問題

因為騰訊郵箱折騰了個底朝天,其要搞什麼授權碼登入第三方用戶端,否則會報這個錯誤:

'Error: 請使用授權碼登入。詳情請看: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256'

按照騰訊的連結去做了設定,申請了授權碼,再發送就好了。

就這個設定前所未見,客戶成本挺高的,不知道哪來的勇氣。

2、騰訊QQ郵箱的SSL要求

用自己的郵箱左測右測還是可以了,挺開心,結果用其他人的QQ郵箱時發現還是不行:

 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28

看到這個異常有點煩,用我自己的号碼時怎麼沒有呢?但是意思很明确需要SSL支援。隻好找了下Indy支援SSL的資料,網上有許多,我找了篇:

http://blog.csdn.net/zhnglicho/article/details/6053340

其實主要是使用TIdSSLIOHandlerSocket,設定很簡單

IdSSLHandler.SSLOptions.Method := sslvSSLv23;      

支援SSLV3就行了,隻不過我選了相容兩個版本,這兩個[sslvSSLv23, sslvSSLv3],任選一個就好。

SMTP端口寫465。

隻不過在測試時發現會報一個錯:

Could not load SSL library.

找了找原因是需要openssl的動态庫,于是網上找了找,這兩個動态庫挺多的,我使用的Indy9版本需要特殊的dll版本,詳見這個:http://www.2ccc.com/article.asp?articleid=6351

注:此文章為原創,歡迎轉載,請在文章頁面明顯位置給出此文連結!

若您覺得這篇文章還不錯請點選下右下角的推薦,非常感謝!