я хочу отправлять электронную почту, используя SMTP через прокси с Delphi - PullRequest
1 голос
/ 29 июля 2010

Можно ли отправлять электронные письма, используя smtp через прокси с delphi. Я уже создавал некоторые приложения для отправки электронной почты, используя SSL и т. Д., Но раньше я не использовал прокси-сервер, кто-нибудь знает, как я могу это сделать с помощью Delphi.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 30 июля 2010

Правильный способ использования прокси с компонентом Indy TIdSMTP - это использование свойства SocksInfo (Indy 9 и более ранних версий) или TransparentProxy (Indy 10) TIdIOHandlerSocket.

Для Indy 9 и более ранних версий (поддерживает только прокси SOCKS v4 / 4a / 5):

  1. Назначение компонента TIdIOHandlerSocket свойству TIdSMTP.IOHandler
  2. Назначьте компонент TIdSocksInfo свойству TIdIOHandlerSocket.SocksInfo.

Для Indy 10 (поддерживает SOCKS, HTTP и пользовательские прокси):

  1. Назначение компонента TIdIOHandlerStack (производного от TIdIOHandlerSocket) свойству TIdSMTP.IOHandler
  2. Назначьте TIdSocksInfo, TIdConnectThroughHttpProxy или другой производный от TIdCustomTransparentProxy компонент свойству TIdIOHandlerSocket.TransparentProxy.
1 голос
/ 29 июля 2010

Используйте INDY компоненты.

если прокси и его тип известны заранее, то перед отправкой электронной почты необходимо авторизоваться на прокси-сервере (предположим, с помощью TidTcpClient). Затем с помощью IdSmtp отправьте письмо.

OR

если тип прокси-сервера неизвестен, попробуйте использовать IdSocksInfo и IdIOHandlerSocket. Настройте их на прокси и свяжите с idSMTP.

0 голосов
/ 30 июля 2010

Если вы делали это раньше, использовали ли вы Indy или что-то еще?Какой бы компонент у вас ни был (Indy, ICS и т. Д.), Либо встроена поддержка Proxy (посмотрите на свойства вашего набора интернет-компонентов), либо нет.Если это не так, рассмотрите "Overbyte ICS" или Indy.

Я не большой поклонник Indy.Я использовал его, но затем перешел к компонентам Overbyte ICS Франсуа Пиетта.Попробуйте оба варианта, если вы в настоящее время не используете ICS.

Это, вероятно, не тот путь, которым вы хотели (вы сказали, что хотите использовать SMTP), но в интересах будущих людей, которые ищут способычто-то делать, я также добавлю, что для этого также можно использовать интеграцию с Windows MAPI, и чтобы программа клиента электронной почты (Thunderbird, Outlook) отправляла сообщение с текущего адреса почтового клиента с адреса на адрес электронной почтыпо вашему выбору, используя TJvMail в наборе компонентов JVCL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...