喫茶XRAYトップページ


[1174] Indy10でメール送信♪返信 削除
2007/3/22 (木) 11:43:33 Syake
馬鹿な話のついでに・・・
学の無い私は、色々参考にメール送信とやらをやった。
(ありがとうございます)
with IdSMTP do
begin
  Host := edtHost.Text;
  Username := edtUserName.Text;
  Password := edtPass.Text;
end;
try
  with IdMsg do
  begin
    Sender.Text := edtUserName.Text;
    Subject := edtSubject.text;
    From.Address :=  jconvert.CreateHeaderString(edtUserName.Text);
    From.Name := jconvert.CreateHeaderString(edtFromName.Text);
    Subject   := jconvert.CreateHeaderString(edtSubject.Text);
    Body.SetText(PChar(jconvert.ConvertJCode(memBody.Text,JIS_OUT)));
    Recipients.EMailAddresses := edtToMail.Text;
  end;
  IdSMTP.Connect;
  try
    IdSMTP.Send(IdMsg);
  ShowMessage('多分送れたはず!?);
  except
    ShowMessage('失敗だよ');
  end;
finally
  IdSMTP.Disconnect;
end;
簡単じゃん。
あれ、受診したメールの日時が未来日になってるじゃん。
おかしいな・・・
で、また色々調べたらIndy10のバグらしい。

ならば、IdMsg.Date := SysUtils.Date;
これでも駄目じゃん。
ならば
IdMsg.UseNowForDate := False;
こんどは動かんじゃん。(;_;)




[1175] Re:Indy10でメール送信♪返信 削除
2007/3/22 (木) 23:34:48 taka
▼ Syakeさん
> おかしいな・・・
> で、また色々調べたらIndy10のバグらしい。
>


メールについては
チェックしていないので
なんともいえませんが
indyのソースコードの場所をデバック用の検索パスに
追加して
ステップ実行などで
変数の値を表示しながら
日付のバグの箇所を追跡するといいかもしれないですよ
(簡単になおるといいのですけどね・・・)


Indy10は、updateしたら今まであったプロパティが消失したり
コードがごそごそ変わったりして安定していないので
品質的にも問題があるように思います

ちなみに、indy10のcookieにも類似サイト名に
クッキーを勝手にわたす深刻なバグがあります。
http://okamerin.com/nc/title/item/indy_upgrade10.html


[1176] Re2:Indy10でメール送信♪返信 削除
2007/3/23 (金) 11:14:37 Syake
▼ takaさん

ありがとうございます。

> 日付のバグの箇所を追跡するといいかもしれないですよ
> (簡単になおるといいのですけどね・・・)

それしか、ないのですね。
いかし、私の力量が問題です。
 
> Indy10は、updateしたら今まであったプロパティが消失したり
> コードがごそごそ変わったりして安定していないので
> 品質的にも問題があるように思います
> ちなみに、indy10のcookieにも類似サイト名に
> クッキーを勝手にわたす深刻なバグがあります。
> http://okamerin.com/nc/title/item/indy_upgrade10.html

いろいろ、問題がありそうですね。
他で、もっと簡単に使えるのがあればよいのでしょうが・・・



[1178] Re3:Indy10でメール送信♪返信 削除
2007/3/24 (土) 13:09:03 Mr.XRAY
▼ Syakeさん
▼ takaさん

インターネットがらみは全く無知です.
皆さんに,特にSyakeさんに期待です.とりあえずメール関係はIdSMTP
を使用することだけは知識として頂きました.

今,WinInetを勉強しています.
それにしても印刷関係コンポのpageNumberのバグを早く直さないと(泣).

[1252] Re4:Synapseでメール送信♪返信 削除
2007/5/22 (火) 15:07:11 Syake
▼ Mr.XRAYさん,Takeさん

思い出したように・・・
結局、Indyは諦めました。(根性無しです)
Synapseでメール送信に変更です。

type TMyMailData = record
  FHost :String;    //メール送信サーバー
  FSubject :String; //件名
  FMailTo  :String; //送信先のメールアドレス
  FFrom    :String; //送信者の名前
  FUseID   :String; //ユーザーID
  FPass    :String; //ユーザーパスワード
  FBody    :String; //本文
  FUseAddress :String; //送信者メールアドレス
end;

//別に設定
 FMailData :TMyMailData;

//===================================================================//
//      ライブラリーSynapseによるメール送信
//         Synapseライブラリー
//            http://www.ararat.cz/synapse/index.htm Synasnap.zip
//      任意のフォルダーに解凍してDelphiのライブラリーに追加
//            Uses に SMTPSend, MimeMess, SynaChar, ssl_openssl
//                 もっとも、最後のはSSL/TLSを使わなかったらいらんか
//         OpenSSL(0.9.7)・・・SSL/TLS機能を使用する場合に必要
//            デフォルトのままインストールしてねとの事
//           http://www.slproweb.com/products/Win32OpenSSL.html
//     iconv.dll Jis変換をSynapseが行うのに必要だそうです。
//            実行ファイルと同じディレクトリーへ
//            http://www.ararat.cz/synapse/files/contrib/
//===================================================================//
function Txxxx.XXXXX():Integer;
var
  SL : TStringList;
  hdAttach : string;
  Mime : TMimeMess;
  SMTP : TSmtpSend;
  bRet :Integer;//エラー取得用
begin
  bRet := -1;
  SL := TStringList.Create;
  Mime := TMimeMess.Create;
  SMTP := TSmtpSend.Create;
  try
    //SSL/TLS機能 を実現する為には、モード(FullSSL OR AutoTLS)
    //の設定と何やらポートの設定がいるようですが・・・今回は
    //SMTP.FullSSL := True;    // Explicit モードの場合
    //SMTP.AutoTLS := True;    // implicit モードの場合
    //SMTP.TargetPort := '';   //SSL機能:Synapseでは文字列で指定する
    SMTP.UserName := FMailData.FUseID;   //ユーザーID
    SMTP.Password := FMailData.FPass;    //ユーザーパスワード
    SMTP.TargetHost := FMailData.FHost;  //メール送信サーバー
    //SMTP LOGIN します。
    if SMTP.Login then
    begin
      bRet := 0;
      SL.Add(FMailData.FBody);  //本文
      Mime.Header.CharsetCode := ISO_2022_JP;
      // 送信者名<送信ルアドレス>形式で記述
      Mime.Header.From := FMailData.FFrom + '<' + FMailData.FUseAddress + '>';
      Mime.Header.ReplyTo := FMailData.FUseAddress;
      Mime.Header.ToList.Add(FMailData.FMailTo);
      //Mime.Header.CCList.Add(edtCC.Text);
      Mime.Header.Subject := FMailData.FSubject;  //JIS変換しない
      Mime.AddPartMultipart('', Nil);
      Mime.AddPartText(SL,Mime.MessagePart);
      //添付ファイルが必要な場合に
      //hdAttach := edtAttach.Text;
      //if hdAttach <> '' then
      //  Mime.AddPartBinaryFromFile(hdAttach, Mime.MessagePart);

      // MIMEエンコード
      Mime.EncodeMessage;

      //SMTP.送信
      if not SMTP.MailFrom(FMailData.FUseAddress, Length(Mime.Lines.Text)) then
      begin
        bRet := -2;
      end;
      if bRet = 0 then
      begin
        if not SMTP.MailTo(FMailData.FMailTo) then
        begin
          bRet := -3;
        end;
      end;
   //BCCが必要な場合はこんな感じらしいです・・・(今回はいらん)
      {if bRet = 0 then
      begin
        if not not SMTP.MailTo(edtBCC.Text) then
        begin
          bRet := -4;
        end;
      end;}
      if bRet = 0 then
      begin
        if not SMTP.MailData(Mime.Lines) then
        begin
          bRet := -5; //メールデータを送信できなかった。
        end;
      end;
    end else begin
      bRet := -1;  //ログオンできなかったよ
    end;
  finally
    if bRet = 0 then
    begin
      SMTP.Logout;
    end;
    SL.Free;
    Mime.Free;
    SMTP.Free;
  end;
end;

まあ、何とか送信できたわけですが、SSL/TLS何!?って感じです。
詳しくは
http://codezine.jp/a/default.aspx?cid=313
をどうぞ。(但し、ユーザー登録必要)


[1253] Re5:Synapseでメール送信♪返信 削除
2007/5/22 (火) 15:15:39 Syake
▼ Syakeさん
あっ!
Result忘れた。(^_^;)
Result := bRet;

[1254] Re6:Synapseでメール受信♪返信 削除
2007/5/22 (火) 19:24:22 Syake
メールの受信は遥かに簡単なはず。
なのに・・・(^_^;)
uses pop3send;

//取り敢えずテストという事で
function TXXXX.XXXX(var SList :TStringList):Boolean;
var
  i:Integer;
  POP3Obj :TPOP3Send;
  MailCount,MailSize,MailListSize :Integer;
begin
  Result := False;
  POP3Obj := TPOP3Send.Create;
  try
    POP3Obj.TargetHost := <メール受信サーバー>;
    POP3Obj.UserName := <ユーザーID>;
    POP3Obj.Password := <ユーザーパスワード>;
  //ログオン
    if POP3Obj.Login then
    begin
      Result := True;
   //サーバーにある件数を取得
      if POP3Obj.Stat then
      begin
        MailCount := POP3Obj.StatCount;//件数
        MailSize  := POP3Obj.StatSize; //全体のサイズ
      end;
      if MailCount > 0 then
      begin
    //順に見る場合は 1〜MailCountのようです。
    //TStringListで取得できるそうな
        if POP3Obj.Retr(1) then
        begin
           SList .Assign(POP3Obj.FullResult);
      //メールのサイズを見る場合はこれ
           if POP3Obj.List(1) then
           begin
             MailListSize := POP3Obj.ListSize;
           end;
         end;
      end;
      POP3Obj.Logout;
    end else begin
      ShowMessage('ログイン失敗');
    end;
  finally
    POP3Obj.Free;
  end;
end;
取得できたものの、ごそっとメールの内容を持ってくるって
感じで、直ぐには送信先、送信者、件名、本文などと区分は
簡単には、出来そうもありません。
ところで、添付ファイルはどうやって取得すんじゃろ。
課題は山積じゃん。
受信はIndyが簡単そう。
って、送信はSynapseで受信はIndyですかい。



[1255] Re7:Synapseでメール受信♪返信 削除
2007/5/23 (水) 00:13:23 Mr.XRAY
▼ 悩めるSyakeさんへ

> 簡単には、出来そうもありません。
> ところで、添付ファイルはどうやって取得すんじゃろ。
> 課題は山積じゃん。
> 受信はIndyが簡単そう。
> って、送信はSynapseで受信はIndyですかい。


まっ,がんばって下さいませ.
この方面は全くといっていいほど分かりません.(^_^)
Indyの日本語ヘルプも,URLを教えて頂いたので見ましたが,よく... う〜む.

私ってなんてやさしいんでしょう.困っている人に愛の手を差し伸べて
(どこが!?)

[1256] Re8:一部でSubjectが文字化け(ISO-2022-JP)返信 削除
2007/5/23 (水) 10:54:24 Syake
▼ Mr.XRAYさん
> 困っている人に愛の手を差し伸べて

Vodafoneにメールを送るとBodyは正常だがSubjectだけが文字化けしてしまう
とうい現症がありました。
AU・DOCOMO・OutLookは正常なのに・・・

で、SoftBankに確認をとったら3G以外の機種ではSubjectがこの文字コード
セットに対応していない機種があるらしいとこ事。
たまたま当たったんですね。(当た〜り〜 ドン!ドン! 時代劇もんです)
もっとも3G対応機種をもっとるやつがおらんので確認しようが無いです。

DOCOMOは確認とったところ、iモード自体が対応しているのでOKだそうです。
私と同僚はAUですが今のところ問題無しですが、AUに確認中です。

まあ、一般に出回るアプリでもないし、めんどくさいし、ようわからんし、
困るのは一部で一時期だし勘弁と言うことで「仕様です」で突っ走りますか。

使用上の注意
 「SoftBank 3G未対応機種では件名が正常に表示されない事があります」
 「用法・容量を正しく守って服用してください(^_^;)」

//--(どうでもいいけど)--------------------------------------------//
    私は仲間由紀恵が好きなのでAUにしました。半分本当です。
  おじさんは、ご多分に漏れず若い子が好きなもので・・・。
    でも、同僚の皆は仲間由紀恵はそんなかわいくないと言います。
  業界では「仲間が出るコマーシャルは売り上げが伸びる」と言われてい
  るようで、私はそれに貢献したと言うことでしょうか。
//------------------------------------------------------------------//


[1257] Re8:一部でSubjectが文字化け(ISO-2022-JP)返信 削除
2007/5/23 (水) 13:31:02 Syake
▼ Mr.XRAYさん
> 困っている人に愛の手を差し伸べて

Vodafoneにメールを送るとBodyは正常だがSubjectだけが文字化けしてしまう
とうい現症がありました。
AU・DOCOMO・OutLookは正常なのに・・・

で、SoftBankに確認をとったら3G以外の機種ではSubjectがこの文字コード
セットに対応していない機種があるらしいとこ事。
たまたま当たったんですね。(当た〜り〜 ドン!ドン! 時代劇もんです)
もっとも3G対応機種をもっとるやつがおらんので確認しようが無いです。

DOCOMOは確認とったところ、iモード自体が対応しているのでOKだそうです。
私と同僚はAUですが今のところ問題無しですが、AUに確認中です。

まあ、一般に出回るアプリでもないし、めんどくさいし、ようわからんし、
困るのは一部で一時期だし勘弁と言うことで「仕様です」で突っ走りますか。

使用上の注意
 「SoftBank 3G未対応機種では件名が正常に表示されない事があります」
 「用法・容量を正しく守って服用してください(^_^;)」

//--(どうでもいいけど)--------------------------------------------//
    私は仲間由紀恵が好きなのでAUにしました。半分本当です。
  おじさんは、ご多分に漏れず若い子が好きなもので・・・。
    でも、同僚の皆は仲間由紀恵はそんなかわいくないと言います。
  業界では「仲間が出るコマーシャルは売り上げが伸びる」と言われてい
  るようで、私はそれに貢献したと言うことでしょうか。
//------------------------------------------------------------------//


[1319] Re2:Indy10でメール送信♪返信 削除
2007/7/24 (火) 19:46:27 taka
> ちなみに、indy10のcookieにも類似サイト名に
> クッキーを勝手にわたす深刻なバグがあります。
> http://okamerin.com/nc/title/item/indy_upgrade10.html

もしここをみて
修正を加えた方がいらっしゃいましたら

以前の修正では
.付きではじまるクッキーと付いていないものが混在してしまうので
doaddも変更してください。
http://okamerin.com/nc/title/Indy_Cookie_2007.htm


[1320] Re3:Indy10でメール送信♪返信 削除
2007/7/24 (火) 20:42:50 Mr.XRAY
いやいや、救いの神です。takaさんありがとうごさいます。
Syakeさん始め、悩んでいる方も喜ぶことでしょう。
感謝、感謝。


INCM/CMT
Cyclamen v3.82