全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:6023
推到 Plurk!
推到 Facebook!

請問關於gmail smtp的問題

缺席
mypigbaby
高階會員


發表:11
回覆:168
積分:155
註冊:2006-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-25 23:27:45 IP:61.64.xxx.xxx 訂閱
請問大家
有人用過gmail的stmp來發信嗎?
豬寶寶最近在寫電子報的程式
想利用gmail的stmp送信
可是卻寄不出去,遇到下面的錯誤訊息
5.5.1 RCPT first...

元件屬性如下
[code delphi]
object smtp1: TIdSMTP
IOHandler = IdSSLIOHandlerSocket1
MaxLineAction = maException
ReadTimeout = 0
Host = 'smtp.gmail.com'
Port = 465
AuthenticationType = atLogin
Password = 'xxxxxx'
Username ='abc at gmail.com'
end
object IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket
SSLOptions.Method = sslvSSLv2 <--豬寶寶試過sslvTLSv1也不行
SSLOptions.Mode = sslmUnassigned
SSLOptions.VerifyMode = []
SSLOptions.VerifyDepth = 0
end
object msg: TIdMessage
AttachmentEncoding = 'MIME'
Body.Strings = (
'a'
'b'
'c'
'd'
'e')
BccList = <>
CCList = <>
Encoding = meMIME
From.Address ='abc at gmail.com'
From.Text ='abc at gmail.com'
ReceiptRecipient.Address ='test at gmail.com'
ReceiptRecipient.Text ='test at gmail.com'
Recipients = <>
ReplyTo = <>
Subject = 'delphi test'
end
[/code]

程式碼如下
[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
smtp1.Connect();
smtp1.Send(msg); <--這行會當掉出現 5.5.1 RCPT first...的錯誤訊息
smtp1.Disconnect;

end;
[/code]

豬寶寶找過站內 只有二篇文章跟這個有關
http://delphi.ktop.com.tw/board.php?cid=30&fid=67&tid=82173
http://delphi.ktop.com.tw/board.php?cid=168&fid=920&tid=84547
第一篇針對pop3的設法完全正確 可以在delphi收信,但是卻不能用在smtp上
第二篇roller兄的CODE 在DELPHI也能用
但是INDY9 好像沒有TIdConnectionInterceptOpenSSL 這個元件
後來照aftcast兄的設法(就是貼在上面的CODE) 可是卻出現錯誤訊息
豬寶寶也找了好久的GOOGLE
可是就是找不到能WORK的範例
請問有人知道問題出在那邊嗎?
謝謝
編輯記錄
mypigbaby 重新編輯於 2007-12-25 23:35:49, 註解 無‧
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-26 08:56:39 IP:125.215.xxx.xxx 訂閱
g-mail好像是通过HTTP发送的,本地的pop3和smtp好像都行不通的。
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
mypigbaby
高階會員


發表:11
回覆:168
積分:155
註冊:2006-07-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-26 10:06:14 IP:203.73.xxx.xxx 訂閱
GMAIL從所有自 2005/1/3 起收到的郵件都已啟用 POP 功能
說明在這邊

http://mail.google.com/support/bin/answer.py?answer=13287
===================引 用 zhouying82 文 章===================
g-mail好像是通过HTTP发送的,本地的pop3和smtp好像都行不通的。
mypigbaby
高階會員


發表:11
回覆:168
積分:155
註冊:2006-07-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-12-26 23:58:12 IP:61.64.xxx.xxx 訂閱
豬寶寶花了二個晚上
終於找出來了
code裡面加這行就可以了
msg.Recipients.EMailAddresses:='abc@gmail.com';
一行一行去 追idsmtp的source真累=.=
惟楚流湘
一般會員


發表:0
回覆:1
積分:0
註冊:2008-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-04-22 18:22:09 IP:58.48.xxx.xxx 訂閱
刚刚注册成为会员.
我做测试时,在窗口上放上idsmtp、idmessage和IdSSLIOHandlerSocket三个元件,测试OK.
但是,当我使用Thread测试时,动态创建IdSSLIOHandlerSocket时遇到问题:
1.IdSSLIOHandlerSocket:=TIdSSLIOHandlerSocket(nil);这样不行,给idsmtp赋值(Idsmtp.IOHandler := IdSSLIOHandlerSocket)无用.因为IdSSLIOHandlerSocket根本就为nil.
2.IdSSLIOHandlerSocket:=TIdSSLIOHandlerSocket(aform);也不行,连接时出错.
希望有经验的达人说说在线程里该怎么做.
谢谢.
mybanksoft
初階會員


發表:8
回覆:37
積分:29
註冊:2007-12-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-08-04 20:44:36 IP:118.231.xxx.xxx 訂閱
用ssl時,我踫到的狀況及解決的方法如下。
一、ssl的dll版本不對,若是用indy 10.2.5版要用0.9.8版及以後的版本,而10.2.5以前的版本就不能用 0.9.8版的 ssleay32.dll,而是要用更早之前的版本。
二、某些公司的防火牆及網路規則會擋gmail,所以我目前是用智邦的信箱,來做自動寄信的功能。
------
努力學習Rave
系統時間:2024-05-08 9:55:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!