メールを送信するには?


まゆみ  2009-12-04 00:08:52  No: 36391  IP: 192.*.*.*

メールを送信するプログラム作っており、ビルドして実行したんですが、メールの送信ボタンを押すと「Socket Error #11004」が出ます。SMTPサーバの欄に入力するとこのようなエラーメッセージがでます。Delphiを始めたばかりでいろんなサイトを見ているのですが、どれも詳しく説明しているものがなくうまくいきません。

コードは以下のような感じなのですが、何か他に設定が必要なのでしょうか?できれば、Delphiでのメールの送信について詳しく書かれたサイトをご存知の方がおられれば、そのサイトや書籍を教えていただきたいです。
どなたか回答お願いいたします。

procedure TfrmSendMail.btnSend1Click(Sender: TObject);
var
  host, subject, mailto, from, body: string;
begin
  
  host    := edtHost.Text ;
  subject := jconvert.CreateHeaderString(edtSubject.Text) ;
  mailto  := edtToMail.Text ;
  from    := jconvert.CreateHeaderString(edtFromName.Text);
  body    := jconvert.ConvertJCode(memBody.Text, JIS_OUT);

  IdSmtp.QuickSend(host, subject, mailto, from, body);

  ShowMessage('メール送信を終わりました。');
end;

編集 削除
igy  2009-12-04 09:09:57  No: 36392  IP: 192.*.*.*

IdSMTPのUsername・Passwordプロパティは設定されてますか?

IdSmtp.QuickSendのメール送信について
https://www.petitmonte.com/bbs/answers?question_id=5707

編集 削除
Delphi大好き  2009-12-04 12:46:48  No: 36393  IP: 192.*.*.*

参考になれば・・・
自分の場合のコードです。
環境はDelphi7Pro  WinXPです。
Indyは10に更新しています。
因みに自分も、ここの過去ログで実装出来ました^^。

IdMessage1を一つ配置します。
こちらでは、送信のみならjcoonvartは使用せずに送信できました。
文字化けするとの過去ログもあったので、何ともいえませんが・・・


procedure TForm1.Button4Click(Sender: TObject);
var
  subject, from, mailto, body: string;
  msg: TIdMessage;
  IdSMTP: TIdSMTP;
begin

  //IdSMTPのプロパティを設定しておく

  IdSMTP := TIdSMTP.Create(nil);
  IdSMTP.Port      := 587;
  IdSMTP.Host      := 'smtpアドレス';
  IdSMTP.Username  :=   'ユーザー名';
  IdSMTP.Password  := 'パスワード';

  subject := 'タイトル';
  from    := '送信元アドレス';
  mailto  := '送信先アドレス';

  body    := memo1.Lines.Text;

  msg := TIdMessage.Create(IdSmtp);
  try
    msg.Subject := subject;
    msg.Recipients.EMailAddresses := mailto;
    msg.From.Text := from;
    msg.Body.Text := body;
    msg.ContentType := 'text/plain';

    IdSmtp.Connect;
    IdSmtp.Send(msg);
    IdSmtp.Disconnect ;
  finally
    msg.Free;
  end;
end;

編集 削除
Delphi大好き  2009-12-12 14:13:05  No: 36394  IP: 192.*.*.*

もし、上記でもエラーメッセージが消えなければ・・・

Indyを10に変えてみてはどうですか?
自分も古いIndyではエラーメッセージが止まず、
Indyを10に変えてみたら正常に動くようになりました。

Indy10をインストールするには?
https://www.petitmonte.com/bbs/answers?question_id=6580

編集 削除