IdSMTPでメールを送信するには?

解決


やすこ  2007-02-28 03:47:52  No: 25091

Delphi7  IdSMTPコンポーネントを使ってメール送信を行っていましたが、
ある日突然プロパイダのスパムメール対策でポート25が使用できなくなりました。
ポート587を利用するには「このサーバーは認証が必要」にしなけらばならないらしいのですが、IdSMTPコンポーネントの設定がわかりません。
どうしたらよいのか教えてください。


にしの  2007-02-28 20:33:41  No: 25092

こんな感じでよろしいかと。
肝は、
・AuthenticationType := atLoginを設定する
・Username := SMTP認証用ユーザIDを設定する
・Password := SMTP認証用パスワードを設定する
・Port := 587に設定する
くらいです。
SMTPサーバの設定によっては、もう少し手を加える必要があるかもしれません。

procedure TForm1.btnSendClick(Sender: TObject);
var
  subject, from, mailto, body: string;
  msg: TIdMessage;
begin
  //IdSMTPのプロパティを設定しておく
  // AuthenticationType := atLogin
  // Host := SMTPサーバ
  // Password := ログインパスワード
  // Port := 587
  // Username := ログインユーザID
  subject := 'IdSMTP Send Test';
  from    := 'nishino@i-i-i.jp';
  mailto  := 'nishino@overs.jp';

  body    := 'Indy SMTP SEND TEST';

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

    IdSmtp1.Connect;
    IdSmtp1.Send(msg);
    IdSmtp1.Disconnect ;
    ShowMessage('送信完了しました。');
  finally
    msg.Free;
  end;
end;


やすこ  2007-03-01 06:52:39  No: 25093

ほんとに助かりました。
にしのさん
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加