Ini adalah kebangkitan dari program sendmail palsu oleh Byron Jones (https://www.glob.com.au/sendmail/), jika Anda tidak memerlukan dukungan TLS v1.1 atau v1.2 silakan gunakan versi aslinya, tidak ada dukungan yang tersedia pada kedua versi dan keduanya tidak dipelihara secara aktif.
sendmail.exe adalah aplikasi konsol windows sederhana yang mengemulasi opsi -t sendmail untuk mengirimkan email yang disalurkan melalui stdin.
hal ini dimaksudkan untuk memudahkan menjalankan kode unix yang memiliki /usr/lib/sendmail hardcoded sebagai sarana pengiriman email atau program yang menggunakan metode pipa sendmail, misalnya seperti yang digunakan php di windows.
itu tidak mendukung pengiriman yang ditangguhkan, dan memerlukan server smtp untuk melakukan pengiriman pesan yang sebenarnya.
Saya telah menggunakan program sendmail palsu selama beberapa tahun, tetapi ketika menggunakan server smtp Office 365 TLS v1.0 tidak cukup lagi, mereka memerlukan TLS v1.2, jadi saya mencoba mengkompilasi ulang sumber yang Byron Jones termasuk dalam rilis di situsnya. Dengan sedikit biola dan beberapa perubahan kecil saya dapat mengkompilasi ulang program Delphi 2007, dalam Delphi Builder 10.3 (Rio) edisi komunitas saat ini dari Embarcadero. Itu berisi versi Indy yang lebih baru, yang memiliki dukungan untuk TLS v1.2 dan memaksa TLS v1.1+ dalam kode sendmail.
Untuk menyelamatkan orang lain dari kerumitan mengkompilasi ulang sendmail palsu dari kode sumber, saya menyediakannya di situs github ini, termasuk kode sumbernya, sama seperti versi aslinya.
Unduh sendmail.zip dari github ini dan unzip isinya ke folder sementara di sistem Anda
salin sendmail.exe, sendmail.ini dan kedua file .dll ke usrlib pada drive tempat aplikasi unix diinstal. misalnya. jika aplikasi Anda diinstal pada c:, sendmail.exe dan sendmail.ini perlu disalin ke c:usrlibsendmail.exe dan c:usrlibsendmail.ini atau direktori lain jika jalurnya tidak tidak di-hardcode di aplikasi yang menggunakannya.
konfigurasikan server smtp dan domain default di sendmail.ini.
umumnya yang perlu Anda lakukan hanyalah menginstal sendmail.exe di usrlib, dan kode yang ada yang memanggil /usr/lib/sendmail akan berfungsi.
jika Anda membuat kode aplikasi baru, yang perlu Anda lakukan hanyalah membuat pesan email Anda dengan header lengkap, lalu menyalurkannya ke 'sendmail.exe -t'
Dengan PHP jalur sendmail tidak di-hardcode, dapat dikonfigurasi dalam file php.ini, sehingga sendmail.exe dan file-filenya dapat ditempatkan bersama di mana saja pada sistem, konfigurasi menyatakan "Unix only" untuk opsi sendmail_path, tetapi ini berfungsi di windows, ini mengesampingkan 3 opsi Win32 saja di atasnya, lihat manual PHP (https://www.php.net/manual/en/mail.configuration.php#ini.sendmail-path)
Catatan: Jika server SMTP Anda tidak memerlukan autentikasi atau enkripsi, Anda cukup menggunakan parameter konfigurasi SMTP dan SMPT_PORT untuk menentukan server smtp, maka Anda tidak memerlukan sendmail.exe.
PHP.ini:
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:sendmailsendmail.exe -t"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On
Di sendmail.ini Anda menentukan alamat server smtp dan kombo nama pengguna/kata sandi
Sendmail menyetel ERRORLEVEL ke 0 jika berhasil.
Versi 28 dan lebih tinggi atur ERRORLEVEL ke -1 jika email tidak dapat terkirim. Nilainya diubah untuk memberikan kompatibilitas yang lebih baik dengan PHP, yang mengharapkan ERRORLEVEL menjadi -1 jika gagal.
batalkan komentar pada entri debug_logfile di sendmail.ini dan coba kirim ulang pesan yang gagal. ini akan membuat debug.log di direktori yang sama dengan sendmail.exe yang menampilkan transkrip SMTP lengkap.
Silakan lihat situs versi aslinya: https://www.glob.com.au/sendmail/
Program ini dirilis di bawah lisensi BSD: https://www.glob.com.au/sendmail/license.html
Detail lisensi dan kode sumber lengkap (Delphi 10.3 Rio) disertakan dalam folder sumber di file zip dan repositori ini.