|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
[C] Test del mail server con comando mail
Ciao a tutti!
Sono diversi giorni che sto cercando di risolvere questo problema e ancora non ci riesco. Ho scritto un mail server in C che funziona bene con un client di posta tradizionale, tipo Thunderbird e funziona anche tramite una sessione telnet. Non riesco a farlo funzionare tramite mail+Postfix. Non so neanche se sono nella sezione giusta, sto cercando di capire se è un problema di mail o del mio mail server. Ho configurato il file main.cf in questo modo: Codice:
relayhost = [myMailServer.localhost] smtp_sasl_auth_enable = no smtp_use_tls = no disable_dns_lookups=yes smtp_never_send_ehlo = yes Codice:
manugal@manugal-desktop:~$ mail -v -s "Subject" [email protected] Hello world! . EOT Mail Delivery Status Report will be mailed to <manugal>. manugal@manugal-desktop:~$ Codice:
Apr 10 12:11:58 manugal-desktop postfix/master[2756]: daemon started -- version 2.7.0, configuration /etc/postfix Apr 10 12:12:05 manugal-desktop postfix/pickup[2758]: 5F94C21B28: uid=1000 from=<manugal> Apr 10 12:12:05 manugal-desktop postfix/cleanup[2763]: 5F94C21B28: message-id=<[email protected]> Apr 10 12:12:05 manugal-desktop postfix/qmgr[2759]: 5F94C21B28: from=<[email protected]>, size=488, nrcpt=1 (queue active) Apr 10 12:12:05 manugal-desktop postfix/smtp[2765]: < myMailServer.localhost[192.168.1.11]:25: 220 myMailServer.localhost SMTP Service ready Apr 10 12:12:05 manugal-desktop postfix/smtp[2765]: > myMailServer.localhost[192.168.1.11]:25: HELO manugal-desktop.localdomain Apr 10 12:12:05 manugal-desktop postfix/smtp[2765]: < myMailServer.localhost[192.168.1.11]:25: Apr 10 12:12:58 manugal-desktop postfix/qmgr[2759]: warning: private/smtp socket: malformed response ...
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Ho provato per scrupolo ad inviare come risposta la stringa "\r\n250 OK\r\n" (quindi un codice di risposta 250 preceduto dal CRLF). Ora sembra che la risposta arrivi correttamente a Postfix. Questo infatti è il mail.log:
Codice:
Apr 10 22:05:36 manugal-desktop postfix/pickup[2846]: 70F9E21BDD: uid=1000 from=<manugal> Apr 10 22:05:36 manugal-desktop postfix/cleanup[2859]: 70F9E21BDD: message-id=<[email protected]> Apr 10 22:05:36 manugal-desktop postfix/qmgr[2847]: 70F9E21BDD: from=<[email protected]>, size=488, nrcpt=1 (queue active) Apr 10 22:05:40 manugal-desktop postfix/smtp[2850]: < myMailServer.localhost[192.168.1.11]:25: 220 myMailServer.localhost SMTP Service ready Apr 10 22:05:40 manugal-desktop postfix/smtp[2850]: > myMailServer.localhost[192.168.1.11]:25: HELO manugal-desktop.localdomain Apr 10 22:05:46 manugal-desktop postfix/smtp[2850]: < myMailServer.localhost[192.168.1.11]:25: Apr 10 22:05:46 manugal-desktop postfix/smtp[2850]: < myMailServer.localhost[192.168.1.11]:25: 250 OK Apr 10 22:05:46 manugal-desktop postfix/smtp[2850]: server features: 0x1000 size 0 Apr 10 22:05:46 manugal-desktop postfix/smtp[2850]: > myMailServer.localhost[192.168.1.11]:25: MAIL FROM:<[email protected]> ...
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Consultandomi sulla mailing list di Postfix, mi è stato detto che il problema è dovuto al fatto che quando spedisco la risposta, Postfix riceve \r\n\0 (mentre dovrebbe ricevere solo \r\n). Io per spedire le risposte chiamo la send in questo modo:
send(SMTPSocket,session->reply,strlen(session->reply)); Visto che chiamo strlen(session->reply), com'è possibile che gli spedisce anche \0?
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Magari gli manca proprio \r\n ?
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
No c'è \r\n, l'ho visto tramite tcpdump. Il problema è che io gli mando ad esempio "250 OK\r\n" ma lui riceve "250 OK\r\n\0".
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Non si sa perché ora riceve correttamente i comandi, senza aver toccato nulla. Forse non accorgendomi ho cambiato qualcosa e ora va.
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma che riceva anche \0 è una certezza o una supposizione ?
Non è che magari c'è una send successiva ? Prova a fermarti con il debbuger subito dopo la send. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Evidentemente la colpa era di questa send:
send(tArgs->SMTPSocket,"220 myMailServer.localhost SMTP Service ready\r\n",48,0); Modificandola a: send(tArgs->SMTPSocket,"220 myMailServer.localhost SMTP Service ready\r\n",47,0); Funziona. Di conseguenza ho modificato tutte le send in modo tale che spediscano esattamente la lunghezza della stringa (quindi strlen() ).
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:12.



















