Karakter khusus dalam kata sandi ssmtp

14

Saya punya +dan =karakter dalam kata sandi gmail saya. Bagaimana saya bisa mengonfigurasi ssmtpuntuk menghindari kesalahan otorisasi?

Saya /etc/ssmtp/ssmtp.conf:

[email protected]
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=1234+=5678
FromLineOverride=YES
UseTLS=YES
hostname=skynet

Bagaimana saya menjalankan ssmtp:

$ echo "email content" | mail -s "email subject" [email protected]
send-mail: Authorization failed (535 5.7.1
http://support.google.com/mail/bin/answer.py?answer=14257
hz16sm4385885lab.6)
Jofsey
sumber
1
Program apa kesalahan terjadi? Tolong beri kami beberapa konteks. Brevity itu baik, tetapi ini hanya sedikit untuk dikerjakan.
pengguna 99572 baik-baik saja
Saya telah melampirkan beberapa informasi lebih lanjut ke pertanyaan.
Jofsey
Apakah Anda mencoba tanda kutip tunggal, yang seharusnya cocok untuk Anda
Suyash Jain
Bugnya ada di github.com/ajwans/sSMTP/blob/master/ssmtp.c#L913 , saya ingat saya mengirimkan tambalan kembali pada tahun 2010 ... tidak ada yang peduli. Saya kira itu adalah fitur, bukan bug!
David S.

Jawaban:

5

Masih ada sejumlah bug luar biasa yang berhubungan dengan karakter khusus di AuthPassbaris dalam /etc/ssmtp/ssmtp.conffile:

https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&src=ssmtp#_0_3_4

Laporan bug ini khusus untuk ssmtphalaman di Debian, tetapi mungkin berlaku untuk orang lain.

  • Log laporan Debian Bug - # 463196 : ssmtp tidak dapat menguraikan AuthPass dengan '=' atau ':' di dalamnya
  • Log laporan Debian Bug - # 768129 : ssmtp: Masalah yang sama di sini dengan "#"

Menurut log laporan ini, baris yang berisi karakter =,, :atau #dilewati seluruhnya, atau diproses dengan cara yang menghilangkan bagian kata sandi di sisi kanan karakter ini.

Dengan kata lain, saat ini tidak ada cara untuk "melarikan diri" karakter khusus ini di AuthPasstelepon.


Sebagai catatan tambahan, ada sejumlah perangkat, seperti printer rumah nirkabel, yang mengharuskan kata sandi dimasukkan pada papan nomor, mirip dengan yang digunakan pada telepon. Beberapa karakter khusus tersedia di perangkat ini, tetapi banyak yang tidak dapat dipilih.

Untuk situasi seperti ini, Anda (sayangnya) terpaksa menyesuaikan kata sandi untuk perangkat.

Kata sandi yang lebih panjang yang terdiri dari huruf & angka lebih disukai daripada kata sandi yang lebih pendek dengan lebih banyak karakter tanda baca.


Pertanyaan ini juga telah ditanyakan dan dijawab dengan sangat baik di halaman berikut:

Karakter apa yang ilegal dalam kata sandi di ssmtp.conf?

JonathanDavidArndt
sumber
@Hugo Itu mungkin topik yang bagus untuk pertanyaan lain: superuser.com/help/how-to-ask Jika Anda menemukan sesuatu atau memposting sendiri, jangan ragu untuk meninggalkan komentar lain di sini yang terhubung dengannya.
JonathanDavidArndt
Pengelola harus mempertimbangkan memperlakukan entri file konfigurasi sebagai Urlencoded seperti dalam beberapa paket lainnya.
Pak Tua
1

Anda dapat menggunakan solusi berikut:

feed the password directly in the command line argument

ssmtp -ap "Hash # Kata Sandi" ...

alternatively put the password in an environment variable.

ssmtp -ap $ PASSWD ...

Semoga ini bisa membantu.

Hugo Trentesaux
sumber
-1

Jawabannya sangat tergantung pada konteks di mana Anda memasukkan atau mengirimkan kata sandi. Dalam beberapa format, Anda dapat melingkupi kata sandi Anda, dalam format ""lain Anda harus keluar dari karakter yang menyinggung. Karakter pelarian ini , berbeda antara program, shell, sistem operasi, dll. Dalam skrip batch Windows, escape adalah ^saat berada di Linux atau situasi terminal tertentu, escape itu \.

PenguinCoder
sumber
1
Saya mencoba menyimpan kata sandi saya dalam 1234\+\=5678bentuk, tetapi mendapat kesalahan yang sama.
Jofsey
1
Konteksnya adalah ssmtppaket, bukan SMTP secara umum.
Kenny Evitt
-1

Coba lepaskan tanda sama dengan kedua:

AuthPass=1234+\=5678
Malcolm Boekhoff
sumber