【Delphi】 Indyコンポーネント 【C++Builder】

このエントリーをはてなブックマークに追加
933デフォルトの名無しさん:2009/10/24(土) 13:31:43
>>932
OSはWindows2000?
934デフォルトの名無しさん:2009/10/24(土) 18:26:12
>>923
Indyよくわからないが
Charset := 'iso-2022-jp';
入れないとだめだと思うが
Indyのメールのキャラクターのプロパティを探して
935デフォルトの名無しさん:2009/10/24(土) 18:46:54

>>923
https://forums.embarcadero.com/thread.jspa;jsessionid=F5CF939FFE16FA427099B8511D4B9A6B?messageID=118505
これってずばりじゃないかな
-- Code --
var
  Subject, Body, Host, MailTo, MailFrom: String;
begin
  Host := 'smtp.....';
  MailTo := 'to@....';
  MailFrom := 'from@...';
  Subject := 'テストです';
  Body := Subject;
  IdSMTP1.QuickSend(Host, Subject, MailTo, MailFrom, Body, 'text/plain', 'ISO-2022-JP', '7bit');
end;
936932:2009/10/24(土) 19:42:55
>>933
XPです
937932:2009/10/24(土) 19:45:36
>>934
コレ入れると何故かすべて文字化けするんです…泣
938932:2009/10/25(日) 06:28:46
>>935
QuickSendだと認証が通らないです。
また、送信時に各設定文字列(宛先アドレス)などが
文字化けしてエラーとなってしまいます。
QuickSendのパラメーターも変更されているようで、
Body以降は不要となっています。

困りました…
939932:2009/10/25(日) 08:17:56
下記のように一旦旧Delphiの様にSJISに変換したらうまくいきました。

type
ISO2022JP = type AnsiString(50220); //iso-2022-jp
SHIFTJIS = type AnsiString(932); //SHIFT-JIS

var
Msg : TIdMessage;
AnsiStr2022JP : ISO2022JP;
AnsiStrSJIS : SHIFTJIS;
begin

Msg := TIdMessage.Create(SMTP);
Msg.Date := now - StrToTime('9:00:00');
Msg.ContentType := 'text/plain';
Msg.CharSet := 'ISO-2022-JP';
Msg.ContentTransferEncoding := '7bit';

Msg.From.Name := usr_name; //unicodeのままで文字化けしない
Msg.From.Address := jConvert.CreateHeaderString2(usr_mailaddress);
Msg.Recipients.EMailAddresses := MailAddress
Msg.Subject := SubjectStr; //unicodeのままで文字化けしない

//本文 unicode→SHIFT-JIS→ISO-2022-JP→unicode
AnsiStrSJIS := tblDM.FieldByName('MSG').AsString;
AnsiStr2022JP := AnsiStrSJIS;
Msg.Body.Text := AnsiStr2022JP;

940デフォルトの名無しさん:2009/10/28(水) 19:11:20
TIdHttpServerでダイジェスト認証を行いたいのですが、
どなたかご教授願えませんでしょうか?

調べても方法が見つからず困っています。
941デフォルトの名無しさん:2009/10/30(金) 02:51:07
code932 = SJIS だな
はじめから答えは判明していたな
942デフォルトの名無しさん:2009/12/23(水) 11:01:53
Tiburon用 Indy10の SMTP 12月に入ってからのリビジョンは
日本語のSubjectが化けるね。

IdCoderHeader.pas あたりが大幅に書き換えられていて、
ヘッダーのエンコードがバグってる模様。 ソース追っかけてたけど面倒になって
やめた。 

rev3878に戻すとSubjectも正常に送れるんで戻した。
943942:2009/12/23(水) 11:04:19
化けると書いたけど、実際はエンコード自体がうまく機能せず空文字列になるんだった。
944デフォルトの名無しさん:2009/12/23(水) 15:25:25
ISO-2022-JPだとSubjectが長いと途中から文字化けするな。
MIMEエンコードして複数行になった場合、二行目以降に
エスケープ文字が付加されていないためのようだ。

Subject全体をBase64変換して単純に76文字でぶった切ってる
せいか・・・
945デフォルトの名無しさん:2009/12/23(水) 17:25:42
Indyの日本語処理は昔からバグだからけ。
TIdMessageは、はっきり言って使えない。
946デフォルトの名無しさん:2010/01/13(水) 12:42:45
くだスレからきました。
ここを見て何となくIndyを使ったフォームの内容の受信は
何とかなるなと思ったんですが、その内容をメールで送りたいのですが、
sendmailとか無くてもIndyでやれますか?
947デフォルトの名無しさん:2010/01/14(木) 01:13:35
やれる。
948デフォルトの名無しさん:2010/01/14(木) 07:37:29
>>946
とりあえず、メールの仕組みを勉強した方がいいと思う。
ちゃんと知らないと、いつかどこかで、はまるよ。
949946:2010/01/14(木) 09:06:39
>>947,948
レス、有り難うございます。
windowsの自宅サーバーでsendmane等を使いたくない場合に
どうしたら良いんだろうと思い質問させてもらいました。
昨日、メールを送るCGIについて自分なりに調べた結果、
もしIndyで出来るとすると自分が使っているプロバイダーのメール設定
と同じような設定をするものがあるってことですよね?
自分は>>1の状態なので、また質問させてもらいます。
よろしくお願いします。
950946:2010/01/15(金) 00:35:48
くどくてすみません、確認させてください。
フォームのデータを受け取ったら
ttp://oto.chu.jp/kujira/text/delphi/mail/sendmail.htm
のように、Indyを使ってメール送信してやればsendmane
とか使わなくても出来るってことですよね?
どなたか、よろしくお願いします。
951デフォルトの名無しさん:2010/01/15(金) 08:27:51
いまいちよくわからんのだが
そのsendmaneとやらを自作するというだけのことだよね?
952デフォルトの名無しさん:2010/01/15(金) 21:28:07
レス、有り難うございます。
> そのsendmaneとやらを自作するというだけのことだよね?
確かに、そう言われればそういうことですね。

今日一日中、IdsmtpのQuickSendでメールを送るテストをしていたのですが、
メールサーバーがSMTP認証がない単純な設定の場合は
送れるのですが、CRAM_MD5のSMTP認証が必要な場合に
タイムアウトでサーバーに接続できないとエラーが出てしまいます。

IdSMTP.AuthenticationType:=atLogin;
IdSMTP.Password:='hogehoge';
IdSMTP.Username:='hogeyama';
IdSMTP.Port:=587;

こんな感じで設定しているのでが他にもあるのでしょうか。
953デフォルトの名無しさん:2010/01/16(土) 09:39:41
>>952
http://homepage1.nifty.com/ht_deko/tech040.html
Indy 10 を使って GMail を送受信するには? (Delphi 2009 以降)
をご覧ください。
954946:2010/01/17(日) 00:26:07
Indy10でSMTP認証できるようになりました。
有り難うございました。

今回、9から10に入れ替えたのですが、プログラムを実行して
タイムアウトエラー等が起きると、そのエラーに関係すると思われる
リソースがないと言うダイアログが出て、Idhogehoge.pasはどこにある?
みたいに聞かれるんですが、これが出ないように設定って出来るのでしょうか?
pasファイルがあるところに、ライブラリパスを通しても駄目っだった気がして。
955デフォルトの名無しさん:2010/01/17(日) 11:49:36
>>954

ブラウザ検索パスの設定にIndyのソースのパスを設定
956デフォルトの名無しさん:2010/01/24(日) 00:11:17
indy10について質問です。
10にしたら「要求したパッケージIndyがありません」という
サンプルプログラム(自作以外のもの)をコンパイルできなくなりました。
自作でIndyのコンポーネントを置いたものはコンパイルできます。
これってどうしたら回避できますか?
957デフォルトの名無しさん:2010/01/24(日) 23:22:10
Indy10にIdsysってある?
958デフォルトの名無しさん:2010/01/25(月) 00:47:40
IdSys.pasはないね。
959957:2010/01/25(月) 09:18:49
>>958
dです。
なんか10にしてから調子よくないや
960デフォルトの名無しさん:2010/01/25(月) 23:20:16
ちなみにIndy9にもIndy8にもIdSys.pasはない。
961デフォルトの名無しさん:2010/01/26(火) 16:19:44
>ちなみにIndy9にもIndy8にもIdSys.pasはない
そうですか。じゃぁなんなんだろ。
>>956の現象も起きるし。

マジ>1状態。
962デフォルトの名無しさん:2010/01/27(水) 08:16:39
アララットに移行しましょう
963デフォルトの名無しさん:2010/01/27(水) 22:46:08
>961
状況をもっと正確に書け。
964961:2010/01/27(水) 23:56:25
有り難う。お言葉に甘えて書かせてもらいます。

xamppで自宅鯖を立てました。
xamppに入ってるsendmailの最新版にdel7のソースが付いてる
というのをxamppスレで見て早速見てみた。
読み込みは何ともなかったんだけど、コードの定義を見ようとすると
Idsysが無いとか、Indyのパッケージがないとか色々出てモヤモヤしてます。
Idsysは作者がわざとソースから削除してる可能性もあると思いますが、
Indyのパッケージが無いと言われるのは、今後サンプルとかをいじる時に
困るだろうなぁと思って凹んでます。

長文失礼しまた。
965デフォルトの名無しさん:2010/01/28(木) 07:27:42
>964
> 読み込みは何ともなかったんだけど、コードの定義を見ようとすると
> Idsysが無いとか、Indyのパッケージがないとか色々出てモヤモヤしてます。
いやだから正確に書けっての。エラーメッセージとか、ソースどっから落としたのかとか。
966デフォルトの名無しさん:2010/01/28(木) 09:03:47
そう言うことですか。
何度もすみません。&有り難うございます。
確認して夜に書き込みさせてもらいますので
気が向いたら、よろしくお願いします。
967デフォルトの名無しさん:2010/01/28(木) 09:09:30
あほすぎ
968デフォルトの名無しさん:2010/01/28(木) 10:02:28
なにやら盛り上がってる?
969デフォルトの名無しさん:2010/02/08(月) 09:47:48
indy9から10に変更して、9で作ったプログラムをコンパイルしたら

IdSSLOpenSSLHeaders.pas(11194): 'Array' と 'Char' には互換性がありません

て、出たんだけどどうしたらいい?
やってることは、IdHttpをcreateしてGetプロシージャーで
ホームページ上のデータを取ってきてるだけなんだけど。
970969:2010/02/08(月) 10:14:28
コンパイルエラーの出る場所です。

function IdSslSessionGetIdCtx(s: PSSL_SESSION; id: PPChar; length: PIdC_INT) : TIdC_UINT;
{$IFDEF USEINLINE} inline; {$ENDIF}
begin
Assert(s<>nil);
id^ := @s.sid_ctx; <---ここが駄目って出る
Result := s.sid_ctx_length;
Length^ := Result;
end;
971デフォルトの名無しさん:2010/02/08(月) 16:16:36
うちのソースだと、そこんところは
{function IdSslSessionGetIdCtx(s: PSSL_SESSION; id: PPAnsiChar; length: PIdC_INT) : TIdC_UINT;
{$IFDEF USEINLINE inline; {$ENDIF
begin
Assert(s<>nil);
id^ := @s.sid_ctx;
Result := s.sid_ctx_length;
Length^ := Result;
end; }
って丸ごとコメントアウトされてるよw
頭んところも
//function IdSslSessionGetIdCtx(s: PSSL_SESSION; id: PPAnsiChar; length: PIdC_INT) : TIdC_UINT;
なってる
972デフォルトの名無しさん:2010/02/08(月) 17:32:08
有り難うございます。
さっき、Indyのサイト行ってバージョン確認したら
最新のをインスコしてるんですがどういうことだろう。
973971:2010/02/08(月) 17:57:54
うちはD2010に入ってた奴だからか?
http://indy.fulgan.com/
のTiburon.changelog.txtには修正のログあるね
974デフォルトの名無しさん:2010/02/09(火) 09:15:39
>>973
有り難うございます。
私はのはD7で、D8にして絶望したのでそのままです。
975デフォルトの名無しさん:2010/02/11(木) 13:09:11
Indy10でメール送信プログラムを作っています。

とりあうえず送信はできるようになったんですが大きな添付ファイルの
送信中に、それを中止する方法がうまくいきません。

IdSMTP.Disconnect では止まってくれず、IdSMTP.IOHandler.Close で
強引にSocketを切ってやれば止まることは止まるけど例外が発生する orz

TIdFTPなんかだとAbortメソッドがあるみたいだけど、TIdSMTPにはないし…

IdSMTP.Sendは IdThreadCompornent使って別スレッドで動かしてます。

976デフォルトの名無しさん:2010/02/12(金) 02:37:55
了解しました

次の方どうぞ
977デフォルトの名無しさん:2010/02/27(土) 18:49:04
}{
978デフォルトの名無しさん:2010/02/27(土) 18:54:33
`
979デフォルトの名無しさん:2010/02/27(土) 18:57:54
-
980デフォルトの名無しさん:2010/02/27(土) 19:17:51
]
981デフォルトの名無しさん:2010/02/27(土) 19:26:19
\
982デフォルトの名無しさん
@