2017-05-30 2 views
0

Ich mache eine App (winzige PHP-Website), die meine AirBnB-Gast-Informationen an die Polizei sendet (was ich tun muss - es ist was sie tun ein Hotel, wenn Sie beim Check-in Ihren Reisepass mitnehmen.Schreibe ein Shell-Skript, um S/MIME signierte E-Mails über Mutt zu senden

Die App muss eine Datei mit den Daten des Gastes erstellen und diese dann über eine digital signierte E-Mail an die tschechische Polizeibehörde senden. Der erste Teil ist fertig, aber ich habe noch einen weiteren Tag mit Mutt verbracht.

Mein Ziel ist es, eine S/Mime signierte E-Mail mit einem Anhang mit einem Shell-Skript ohne Benutzerinteraktion zu senden. So etwas wie folgt aus:

mutt -s 'My mail ' [email protected] -a report1.txt < report2.txt 

Der obige Code sendet eine E-Mail mit einem Anhang, aber ohne digitale Signatur obwohl standardmäßig in muttrc aktiviert.

Ich habe es geschafft, signierte E-Mails mit Mutt zu senden, aber nur über seine interaktive Shell und ich muss das Passwort für meinen privaten Schlüssel jedes Mal manuell eingeben, der obige Code fragt nicht nach dem Passwort sendet es einfach ohne sofort eine Unterschrift.

Ich habe versucht, den Schlüssel mit einem leeren PEM-Pass zu generieren, aber OpenSSL hat es überhaupt nicht gemocht und sofort abgebrochen.

+0

Was war der Befehl, der Sie versuchen, den passwordless Schlüssel zu bekommen? – Deathgrip

+0

Vielen Dank! Erinnere dich nicht, aber es war falsch, ich habe es gerade richtig generiert und es funktioniert mit leerer Passphrase (innerhalb der interaktiven Shell), aber es signiert es immer noch nicht, wenn ich die E-Mail mit dem Befehl sende. Irgendwelche Ideen? –

+0

Hier ist, was ich in meinem muttrc haben: 'set smime_certificates = ~/.smime/Zertifikate Satz smime_keys = ~/.smime/Tasten source ~/.mutt/smime.rc Satz smime_default_key = af7d0df7.0 Satz crypt_autosign = ja set smime_is_default = yes' –

Antwort

0

Ich würde sendmail Befehl anstelle von mutt verwenden.

openssl smime -sign -in report.txt -text -signer cert.pem \ 
-from [email protected] -to [email protected] \ 
-subject "My mail" | sendmail [email protected]om 

In diesem Beispiel wird cert.pem aus einer PKCS12-Datei erstellt:

openssl pkcs12 -in yourcert.p12 -out cert.pem -clcerts -nodes 

report.txt die Textdatei/Bericht ist unterzeichnet werden und gesendet.

Die OpenSSL smime (1) man-Seite hat noch ein paar gute Beispiele.

+0

Ich habe das auch versucht, die Sache ist, ich muss einen Anhang (kleine Textdatei) enthalten und ich konnte keinen Weg finden, dies mit sendmail zu tun: / –

0

Verzweifelte Menschen tun verzweifelte Dinge. Ich bearbeitete Code der openssl Quelle Content-Type: text/plain;\r\n statt Content-Type: text/plain\r\n\r\n zu erzeugen, so dass ich mit Follow-up konnte:

Content-Disposition: attachment; 
     filename="test.txt" 
Verwandte Themen