Vinnaren i pepparkakshustävlingen!
2018-10-25, 18:32
  #1
Medlem
Linguass avatar
Jag håller på att bekanta mig med socket programmering och försöker skicka ett mejl via Gmail vilket visade sig vara betydligt svårare i C än i Python... Alltså, är det över huvud taget möjligt utan hundratals rader kod? Jag räkade med att det hela skulle bli mer komplicerat i C men inte såhär extremt svårt.
Citera
2018-10-25, 18:57
  #2
Medlem
https://curl.haxx.se/libcurl/c/smtp-mail.html
Citera
2018-10-25, 19:41
  #3
Medlem
https://stackoverflow.com/questions/...ogram-in-linux

Blir dock plattformsberoende till linux.
Citera
2018-10-26, 10:23
  #4
Medlem
kimdah2002s avatar
Citat:
Ursprungligen postat av Linguas
Jag håller på att bekanta mig med socket programmering och försöker skicka ett mejl via Gmail vilket visade sig vara betydligt svårare i C än i Python... Alltså, är det över huvud taget möjligt utan hundratals rader kod? Jag räkade med att det hela skulle bli mer komplicerat i C men inte såhär extremt svårt.
Med en rad kod blir det nog svårt det finns inget inbyggt i c som kan skicka e-mail

Det finns dock några sätt runt det, som jag använt t.ex.

1. Ladda ner Send-It-Quiet och anropa det från ditt c program med lämpliga parametrar.
2. Använd powershell och skapa ett skript med dina parametrar och anropa det från ditt c program.

Här finns några exempel https://www.raymond.cc/blog/sending-...-notification/

3. Inkludera ett lib som hanterar smtp

Inte så enkelt som det låter då det ofta krävs att du inkluderar andra lib för att det skall fungera

https://github.com/somnisoft/smtp-client
https://sourceforge.net/projects/libquickmail/
__________________
Senast redigerad av kimdah2002 2018-10-26 kl. 10:25.
Citera
2018-10-26, 16:08
  #5
Medlem
Linguass avatar
Citat:
Ursprungligen postat av kimdah2002
Med en rad kod blir det nog svårt det finns inget inbyggt i c som kan skicka e-mail

Det finns dock några sätt runt det, som jag använt t.ex.

1. Ladda ner Send-It-Quiet och anropa det från ditt c program med lämpliga parametrar.
2. Använd powershell och skapa ett skript med dina parametrar och anropa det från ditt c program.

Här finns några exempel https://www.raymond.cc/blog/sending-...-notification/

3. Inkludera ett lib som hanterar smtp

Inte så enkelt som det låter då det ofta krävs att du inkluderar andra lib för att det skall fungera

https://github.com/somnisoft/smtp-client
https://sourceforge.net/projects/libquickmail/

Löste det med PowerShell

Kom fram till att skapa en egen SMTP-server helt enkelt inte är realistiskt (bara krypteringen skulle ha gått på cirka 1,000 rader kod).
Citera
2018-10-26, 16:16
  #6
Medlem
hasenfrasens avatar
Citat:
Ursprungligen postat av Linguas
Kom fram till att skapa en egen SMTP-server helt enkelt inte är realistiskt (bara krypteringen skulle ha gått på cirka 1,000 rader kod).

Den enklaste generiska lösningen för ett lokalt lab-nät i hemmet är nog att köra en virtuell XEAMS som öppet relä till din "smarthost".
Citera
2018-10-26, 17:21
  #7
Medlem
Citat:
Ursprungligen postat av Linguas
Jag håller på att bekanta mig med socket programmering och försöker skicka ett mejl via Gmail vilket visade sig vara betydligt svårare i C än i Python... Alltså, är det över huvud taget möjligt utan hundratals rader kod? Jag räkade med att det hela skulle bli mer komplicerat i C men inte såhär extremt svårt.

Att skicka ett mejl via Gmail har inte mycket med socketprogrammering att göra.
Citera
2018-10-26, 18:23
  #8
Medlem
Linguass avatar
Citat:
Ursprungligen postat av polistandborste
Att skicka ett mejl via Gmail har inte mycket med socketprogrammering att göra.

Nej, det kom jag också fram till. I och med att det hela körs i PowerShell så blev det till noll socketprogrammering. Får kolla på ett lite enklare projekt först
Citera
2018-10-27, 12:42
  #9
Medlem
Citat:
Ursprungligen postat av Linguas
Nej, det kom jag också fram till. I och med att det hela körs i PowerShell så blev det till noll socketprogrammering. Får kolla på ett lite enklare projekt först

Låt C-programmet öppna en server på en tillfällig port (mellan 32768 och 65535) på localhost/127.0.0.1 och telnet:a dit. Hitta på ett eget protokoll för ditt program, skriv både en server och en klient. Starta fler instanser av klienten och se hur servern hanterar det.

SMTP-protokollet är på 225 000 tecken och kanske inget som man direkt återuppfinner programvara för om man inte är ett större företag eller har mycket tid över. Visserligen ser ett exempel på att skicka ett mail enkelt ut, men det gör det när man ser någon vispa ihop mat på TV också.

Det finns bibliotek för allt i C/C++. Skillnaden mot bl.a. PowerShell och Python är att du lär ladda hem och länka med dem själv. Är du inte intresserad av att göra det ska du inte programmera C, och inte klaga på hur komplicerat det är i diverse trådar. Skyll inte din lathet på språket.

I C har du mycket större kontroll över vad du gör, men med det följer naturligtvis att du måste sätta dig in i vad du gör. Frihet under ansvar. I ett scriptspråk kan du skicka mail med ett par raders kod och det är underförstått att språket sköter detaljerna, t.ex. avbryter hela scriptet om internetuppkopplingen är nere.

De två går att kombinera till en viss gräns, genom att anta vad programmerare normalt vill göra, men det är ändå två olika sätt att närma sig problem. I ett scriptspråk börjar man från toppen och utgår från att språket sköter allt på ett hyfsat sätt, och kodar extra för undantagen. I C börjar man från botten.
__________________
Senast redigerad av polistandborste 2018-10-27 kl. 13:13.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback