Autor Beitrag
Seven of Nine
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Mi 30.08.17 13:07 
Ich möchte, aus einem delphiprogramm heraus, mails versenden.
Dies funktioniert generell tadellos, aber nur so lange wie ich es an einem Rechner ausführe der nicht an einem Proxy hängt.
Führe ich es zB auf einem unserer Firmenrechner aus (Proxy-HTTP einstellungen sind bekannt und ebenso das er NTML benützt. Ebenso funktionieren damit auch HTTP Requests wunderbar)

Ich habe nun bereits einiges probiert aber scheinbar einen Knoten im Hirn zu dessen Auflösung ich etwas Hilfe gutgebrauchen könnte.

Laut Google-Suche ist folgendes hierzu tun:
1.Assign a TIdIOHandlerStack component (derives from TIdIOHandlerSocket) to the TIdSMTP.IOHandler property
2.Assign a TIdSocksInfo, TIdConnectThroughHttpProxy, or other TIdCustomTransparentProxy-derived component to the TIdIOHandlerSocket.TransparentProxy property.
....was ich natürlich auch gemacht habe

Ich bekomme beim "IDSmtp.Connect" immer einen TimeOut sobald ich das über unseren Proxy laufen lassen möchte

mein Code sieht in etwa so aus
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
   MyIdSMTP .IOHandler := MyIdIOHandlerStack;
   MyIdIOHandlerStack .TransparentProxy := MyIdSocksInfo;
   MyIdIOHandlerStack .Port := StrToInt(EProxyPort.text);
   MyIdIOHandlerStack .Host := EProxyServer.text;
   MyIdSocksInfo .Authentication := saUsernamePassword;
   MyIdSocksInfo .Host := EProxyServer.text;
   MyIdSocksInfo .Port := StrToInt(EProxyPort.text);
   MyIdSocksInfo .Username := EProxyUsername.text;
   MyIdSocksInfo .Password := EProxyPassword.text;

   MyIdSMTP.Connect;

Hat da jemand einen Tipp was ich falsch mache und verbessern könnte?

vG Martin

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 30.08.17 16:55 
Moin!

Kurz und bündig: ein HTTP-Proxy kann das nicht, das geht nur mit einem SOCKS-Proxy. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Seven of Nine
Seven of Nine Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Mi 30.08.17 21:55 
Danke für die Rückmeldung, Narses
evtl. "sitzt der Fehler auch nur vor dem Computer" ;)

ich bin ganz offen gesagt mit diesen Netzwerksachen nicht so wirklich firm. Vlt. tut's ja auch schon etwas Aufklärungsarbeit.

Mein programm soll auf Wunsch des Users eine email "von sich selbst", "an meinen eigenen email-acount" sowie "an eine spezifizierte andere (Kunden)email-Adresse" versenden.
....selbstverständlich informiert es den User darüber und macht es nicht einfach "im Hintergrund". Also eine Art einfacher integrierter email client.
Als Sender-Adresse verwende ich eine meiner email-Adressen bei Strato die ich extra dafür konfiguriert habe incl der dafür vorgesehene ports, username, passwort etc.

Wie gesagt funktioniert das ganze reibungslos von einem "normalen PC", nicht aber zB von mir in der Firma aus. Genau das möchte ich aber ermöglichen,
da ja evtl einige meiner Anwender ebenfalls an einem Rechner arbeiten der an einem Proxy hängt.

Ich habe verstanden dass die Proxy-Daten für "HTTP" etwas völlig anderes sind als die die für SMTP benötigt werden. Richtig ?

Welche Daten muesste ich denn vom User im Programm angeben lassen damit das bei einem Socks-Proxy (insofern das Netzwerk überhaupt einen Socks Proxy hat)?
Diese müssten sich ja bei der IT eines Frmen-Netzwerkes erfargen lassen, oder?
- Socks Proxy Port ?
- Socks Proxy USername?
- Socks Proxy Password?
...das wars?

gibt es solche Socks Proxy's auch ohne Authentifizierung ? die IDSocks Componente hat nämlich auch die Eigenschaft Authentication = saNoAuthentication oder saUsernamePassword

vG Martin
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 30.08.17 23:15 
Moin!

user profile iconSeven of Nine hat folgendes geschrieben Zum zitierten Posting springen:
Wie gesagt funktioniert das ganze reibungslos von einem "normalen PC", nicht aber zB von mir in der Firma aus. Genau das möchte ich aber ermöglichen, da ja evtl einige meiner Anwender ebenfalls an einem Rechner arbeiten der an einem Proxy hängt.
Wenn du eine Funktion in deinem Programm hast, für die man direkten (also unbeschränkten) Internetzugriff braucht, und diese "Freiheit" hat der Netzwerk-Admin nicht "vorgesehen", dann geht es eben nicht. Was sollte IT-Sicherheit sonst für einen Sinn machen, das ist ja kein Wunschkonzert. :|

user profile iconSeven of Nine hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe verstanden dass die Proxy-Daten für "HTTP" etwas völlig anderes sind als die die für SMTP benötigt werden. Richtig ?
Das hat nix mit den Daten zu tun, sondern mit dem Protokoll. Ein HTTP-Proxy kann eben nur HTTP-Anfragen verarbeiten, keine SMTP-Anfragen. Das ist so, wie ein LKW und ein Schiff, beides sind Transportmittel, aber mit dem LKW wirst du vermutlich auf dem Seeweg Probleme bekommen... ;)

user profile iconSeven of Nine hat folgendes geschrieben Zum zitierten Posting springen:
Welche Daten muesste ich denn vom User im Programm angeben lassen damit das bei einem Socks-Proxy (insofern das Netzwerk überhaupt einen Socks Proxy hat)?
Ich kann mich schon gar nicht mehr erinnern, wann ich den letzten SOCKS-Proxy vor der Nase hatte... :gruebel: Das macht heute keiner mehr, das sind alles HTTP-Proxies. :nixweiss:

Und, nebenbei gesagt: wenn mich einer meiner User nach diesen Daten fragen würde, dann hätte der 5min später einen Termin mit seinem Vorgesetzten in meinem Büro. :shock: :suspect: Ich glaub es hackt...

Vergiss es einfach oder besorg dir eine HTTP-Mail-API, wo du den Mailversand in die Cloud dereferenzierst. Dann kommst du auch wieder mit den HTTP-Proxies klar.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Seven of Nine Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Do 31.08.17 07:24 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Moin!

Ich glaub es hackt...
Vergiss es einfach oder besorg dir eine HTTP-Mail-API, wo du den Mailversand in die Cloud dereferenzierst. Dann kommst du auch wieder mit den HTTP-Proxies klar.

cu
Narses


Ich glaube ich babe das inzwischen verstanden. Danke für den Hinweis.
Der Vorschlag für eine HTTP Mail API hört sich gut an.
Ich kann diese ja nur ersatzweise dort verwenden wo der User bereits angegeben hat dass er einen HTTP Proxy hat (Vermutung: Netzwerke die für HTTP keinen Proxy einsetzen, erlauben auch das freie verwenden jeglicher email programme per SMTP)

so wie ich das auf den ersten Blick überblicke muss ich mir hierzu eine Art HTTP Mail Provider der eine API anbietet dazu aussuchen.
Gibt es da irgendwelche Präferenzen für einen Free-Service?

vG Martin
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 31.08.17 12:18 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Seven of Nine Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Do 31.08.17 20:55 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Du meinst so gängige Anbieter wie GMX, Web.de, ...? Ne, kenn' ich nicht.


Haha, sehr lustig.
Ich vermute mal, dass jeder der schon mal das Vergnügen hatte in seinen Code die Aufrufe eine API einzubauen versteht dass ich hier nachfrage welcher Provider für so etwas am besten geeignet wäre.
Außerdem wusste/weiß zumindest ich nicht das die "Otto-Normalverbraucher email-Free-Services" eine API anbieten mit der man per Code aus einem programm hearaus eine mail verschicken kann.

vG Martin
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 01.09.17 05:18 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 01.09.17 09:13 
Moin!

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Da habe ich etwas besseres zu tun.
Liebe user profile iconFrühlingsrolle, offensichtlich hast du auch besseres zu tun, als in Inhalt dieses Threads aufmerksam zu lesen. :les: :gruebel: :suspect: Deshalb ist dir vermutlich entgangen, dass es genau darum geht: E-Mails ohne das SMTP-Protokoll aus einem isolierten Netz zu versenden. :lupe: :idea:

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Mach' es dir einfach
...und lies doch erstmal, was der TE eigentlich tun möchte. ;) du erscheinst eh etwas ... übermotiviert, mach doch einfach weniger, wenn du keine Zeit hast, aufmerksam zu sein

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 01.09.17 11:57 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Seven of Nine Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Fr 01.09.17 17:33 
Alles gut......

Ich schrieb: "so wie ich das auf den ersten Blick überblicke muss ich mir hierzu eine Art HTTP Mail Provider der eine API anbietet dazu aussuchen.
Gibt es da irgendwelche Präferenzen für einen Free-Service? "

Mir war zuerst NICHT klar das Free-Mail Providerwie Web.de o.ä. auch eine API anbieten.
Ich dachte das von Narses vorgeschlagene sind "spezieller Service Provider".
Bei meiner ersten Google-Suche fand ich dann gleich einige die Geld hierfür verlangen.

Ich möchte natürlich den Programmieraufwand halbwegs in Grenzen halten, schließlich ist das ja nur eine minimale Anzahl meiner Anwender. Deswegen auch meine Frage nach einer Präferenz.
Ich habe inzwischen auch weiter nachgesehen. Mein eigener Web/Mail-Provider Strato hat leider nur eine API für sein CloudDrive nicht aber für mail... das wäre natürlich das schönste gewesen.

Muss mal sehen ob ich für einen "Wald-Feld&Wiesen" Free-Provider mit API ein paar Zeilen Delphi Code zum einbinden finde.
Bei GoogleMail gäbe es Beispiele, allerdings leider nicht in Delphi... müsste ich halt umprogrammieren. NaJa

Danke auf jeden Fall für Eure Hilfe! Ich bin mit meinem Thema immerhin ein Stückchen weiter und v.a. auch schlauer als vor diesem Thread.