Salah satu fitur penting di Eprints adalah email, dimana sistem Eprints harus dapat mengirim dan menerima email secara otomatis. Hal ini tentunya tidak menjadi masalah ketika server Eprints kita memiliki server email sendiri atau ada server email terpisah yang sebelumnya sudah berjalan untuk kebutuhan lembaga/institusi yang bersangkutan.
Nah, masalahnya…tidak semua lembaga/institusi yang menginstall Eprints memiliki server email sendiri. Oleh karena itu, kali ini saya akan berbagi informasi tentang alternatif sistem email di Eprints menggunakan Gmail SMTP menggunakan MSMTP.
Menggunakan MSMTP dan Gmail Sebagai MTA
MTA adalah Mail Transport Agent, salah satu tugasnya adalah mengirim email ke tujuan yang kita tentukan. Jika kita hanya ingin mengirim email saja, kenapa tidak kita gunakan MTA terbesar yang sudah ada? Yap benar, Gmail dari Google. Kalau diatas dijelaskan bahwa Eprints harus dapat mengirim dan menerima email, menerima disini dimaksudkan adalah Eprints menerima email kemudian meneruskannya ke email admin.
Langkah pertama adalah instalasi msmtp dan beberapa pendukungnya.
$ sudo apt-get install msmtp ca-certificates msmtp-mta
Reading package lists... Done
Building dependency tree
Reading state information... Done
ca-certificates is already the newest version.
The following extra packages will be installed:
libgsasl7 libntlm0
The following packages will be REMOVED:
nullmailer
The following NEW packages will be installed:
libgsasl7 libntlm0 msmtp msmtp-mta
0 upgraded, 4 newly installed, 1 to remove and 2 not upgraded.
Need to get 269 kB of archives.
After this operation, 817 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
...
...
Fetched 269 kB in 4s (55.5 kB/s)
Preconfiguring packages ...
(Reading database ... 219938 files and directories currently installed.)
Removing nullmailer ...
* Stopping mail-transfer-agent: [ OK ]
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Selecting previously unselected package libntlm0.
(Reading database ... 219905 files and directories currently installed.)
Unpacking libntlm0 (from .../libntlm0_1.2-1_i386.deb) ...
Selecting previously unselected package libgsasl7.
Unpacking libgsasl7 (from .../libgsasl7_1.6.1-1_i386.deb) ...
Selecting previously unselected package msmtp.
Unpacking msmtp (from .../msmtp_1.4.26-1_i386.deb) ...
Selecting previously unselected package msmtp-mta.
Unpacking msmtp-mta (from .../msmtp-mta_1.4.26-1_all.deb) ...
Processing triggers for man-db ...
Processing triggers for install-info ...
Setting up libntlm0 (1.2-1) ...
Setting up libgsasl7 (1.6.1-1) ...
Setting up msmtp (1.4.26-1) ...
Setting up msmtp-mta (1.4.26-1) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Setelah proses instalasi selesai, kita akan melakukan pengecekan ke smtp Gmail dan port alternatif yaitu 587. Hasil outputnya akan mirip seperti berikut :
$ msmtp --serverinfo --host=smtp.gmail.com --tls=on --tls-certcheck=off --port=587
SMTP server at smtp.gmail.com (sc-in-f109.1e100.net [74.125.68.109]), port 587:
smtp.gmail.com ESMTP x6sm12030583pbt.3 - gsmtp
TLS certificate information:
Owner:
Common Name: smtp.gmail.com
Organization: Google Inc
Locality: Mountain View
State or Province: California
Country: US
Issuer:
Common Name: Google Internet Authority G2
Organization: Google Inc
Country: US
Validity:
Activation time: Wed 18 Feb 2015 05:19:56 PM WIB
Expiration time: Thu 31 Dec 2015 07:00:00 AM WIB
Fingerprints:
SHA1: D3:7C:82:FC:D0:5F:8F:D7:DA:A2:59:8C:42:D7:B2:9F:C1:9F:7E:60
MD5: 5A:01:9E:79:12:D4:BF:B1:68:79:ED:FA:9E:CD:C0:F5
Capabilities:
SIZE 35882577:
Maximum message size is 35882577 bytes = 34.22 MiB
PIPELINING:
Support for command grouping for faster transmission
STARTTLS:
Support for TLS encryption via the STARTTLS command
AUTH:
Supported authentication methods:
PLAIN LOGIN
Untuk mengetahui lokasi file konfigurasi, bisa dilihat dengan menggunakan perintah –version.
$ msmtp --version
...
System configuration file name: /etc/msmtprc
User configuration file name: /home/prazetyo/.msmtprc
...
Jika file konfigurasi /etc/msmtprc belum ada, maka buat terlebih dahulu
$ sudo pico /etc/msmtprc
Di bawah ini saya mencoba satu account dan menggunakan port alternatif 587. Untuk info lebih detil, klik manual MSMTP.
# Set defaults.
defaults
# Enable atau disable enkripsi TLS/SSL.
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# Akun Gmail/Google Apps
account gmail
host smtp.gmail.com
port 587
from userkamu@gmail.com
user userkamu@gmail.com
password passwordmu
logfile /var/log/msmtp.log
# Default akun yang dipakai
account default : gmail
Karena file ini berisi password dalam plain text, maka kita harus batasi hak aksesnya. Saya memanfaatkan grup mail yang sudah bawaan dari default instalasi Ubuntu. Kita juga buat sekalian file untuk log dari msmtp yang berada di /var/log/msmtp.log
$ sudo chgrp mail /etc/msmtprc
$ sudo chown 0600 /etc/msmtprc
$ sudo touch /var/log/msmtp.log
$ sudo chown syslog:adm /var/log/msmtp.log
$ sudo chmod 660 /var/log/msmtp.log
Jangan lupa, kita lakukan symlink msmtp dengan sendmail. Jika memang ada keterangan “file exists”, itu tidak masalah.
$ ln -s /usr/bin/msmtp /usr/sbin/sendmail
ln: failed to create symbolic link `/usr/sbin/sendmail': File exists
$ sudo ln -s /usr/bin/msmtp /usr/bin/sendmail
$ sudo ln -s /usr/bin/msmtp /usr/lib/sendmail
ln: failed to create symbolic link `/usr/lib/sendmail': File exists
Menghubungkan MSMTP ke Eprints
Dari akun eprints, buka file berikut dan lakukan perubahan pada baris ke 15 dengan memberi komen (#) dan ganti dengan konfigurasi yg baru.
$ pico archives/sir2014/cfg/cfg.d/email.pl
# If you want to override the way eprints sends email, you can
# set the send_email config option to be a function to use
# instead.
#
# The function will have to take the following paramaters.
# $repository, $langid, $name, $address, $subject, $body, $sig, $replyto, $replytoname
# repository string utf8 utf8 utf8 DOM DOM string utf8
#
# $c->{send_email} = \&EPrints::Email::send_mail_via_sendmail;
# $c->{send_email} = \&some_function;
# Uses the smtp_server specified in SystemSettings
#$c->{send_email} = \&EPrints::Email::send_mail_via_smtp;
$c->{send_email} = \&EPrints::Email::send_mail_via_sendmail;
# If you want to import legacy data which is excempt from the normal
# validation methods, then uncomment this function and make it return
# true for eprints which are not to be validated.
# $c->{skip_validation} = sub {
# my( $eprint ) = @_;
#
# return 0;
#};
Kalau sudah, lakukan restart server apache anda. Kemudian login pada Eprints sebagai Admin atau menggunakan user yang mempunyai hak akses setara Admin. Klik Admin > klik tab System Tools > klik Send Test Email. Lalu masukkan alamat email tujuan dan klik Send.
Sistem email belum terkonfigurasi
Sistem email sudah terkonfigurasi dengan benar
Cek email yang tadi dibuat sebagai contoh, seharusnya ada email dengan subyek “Test Email”.
Sampai sini, semua proses sudah selesai. Saya berharap panduan/tutorial ini bisa bermanfaat bagi siapa saja yang mungkin mengalami hal yang sama seperti saya.
Tips :
Jika menggunakan Gmail, terkadang perlu untuk mengaktifkan "Less Secure Apps" di Settings > Security.
Atau bisa juga Anda login ke akun Gmail, lalu klik https://www.google.com/settings/u/2/security/lesssecureapps > pilih Turn On
Sumber :
http://devblog.virtage.com/2013/05/email-sending-from-ubuntu-server-via-google-apps-smtp-with-msmtp/
http://blog.joeb454.com/2014/02/configuring-msmtp-on-ubuntu-server-12-04/
https://wiki.archlinux.org/index.php/Msmtp
Lukmanul Hakim
Mantap. Terima Kasih mas sekarang sudah berjalan lagi email repository kami. Sebelumnya pakai SMTP Telkom, tapi jadi bermasalah pas punya IP sendiri. Sekarang lancar aman jaya. Sekali lagi terima kasih 😀
Agung Prasetyo
Alhamdulillah…senang sekali jika artikel bisa membantu dan bermanfaat bagi rekan2 yg sama2 memakai EPrints untuk repository-nya.
Ahya
terima kasih mas..
Agung Prasetyo
Senang bisa bermanfaat.
Heriku
sy muncul error seprti berikut:
msmtp: authentication failed (method PLAIN)
msmtp: server message: 535 5.7.8 Username and Password not accepted. learn more at
msmtp: server message: 535 5.7.8 https://support.google.com/mail/?p=BadCredentials x18sm1351306pfj.149 – gsmtp
msmtp: could not send mail (account default from /etc/msmtprc
mohon solusinya mastah
Agung Prasetyo
Siang. Sepertinya itu kalau dilihat dari pesan errornya, antara user dan password ada yang salah. Jika user dan password sudah benar, coba di cek dibagian secureless-nya apakah sudah diaktifkan atau tidak.
heriku
muncul lagi pesan error begini
msmtp: cannot locate host smtp.gmail.com: temporary failure in name resolution
msmtp: could not send mail (account default from /etc/msmtprc)
ini masalahnya dimana?
Agung Prasetyo
proses –> msmtp –serverinfo –host=smtp.gmail.com –tls=on –tls-certcheck=off –port=587 ini sudah dilakukan belum? Coba browse aja di Google mas errornya. Karena setiap permasalahan yang muncul bisa juga bukan dari sisi eprintsnya…tapi dr sisi ubuntu atau aplikasinya.
heriku
Sudah OK mas, terima kasih… Berhasil… masalahnya pada versi PHP yang saya gunakan.
Arpin
cek secureless-nya dimana mas
Agung Prasetyo
Cek artikel Saya diatas bagian Tips mas.
Yusuf
saya sudah ikuti settingannya mas, tapi kenapa kalo test sendmail bisa kalo create account baru email Registrationnya tidak terkirim yah mas?
terimakasih
Agung Prasetyo
Wah..kok aneh ini errornya, hehehe. Sudah cek /var/log/apache errornya? mngkn ada pesan error yg bisa ditelusur. Boleh tahu tahu url repositorynya?
Yoga
Saya juga masalah yg sama mas, create account baru email Registrationnya tidak terkirim yah mas
ini link nya repository.univrab.ac.id
Agung Prasetyo
sudah dipraktekkan panduan diatas?
Yoga
sudah mas tapi masih belum bisa, mas mohon pm saya mas
yogarizola06@gmail.com
sepyan
saya juga belum bisa padahal sudah saya ikuti
repo.untag-banyuwangi.ac.id
rakamochy
mas, saya sudah ikutin langkah-langkah di atas, dan sukses, hanya saja ketika melakukan emailtest ataupun registrasi user baru, tidak ada email yang masuk di email registrasi, mohon solusinya…
e-prints.stkipbima.ac.id
Agung Prasetyo
Biasanya butuh waktu agak lama untuk nyampe ke email tujuan. Jika tidak muncul, coba baca error log di server anda.
eko
Misi mas
cara mengatasi :
msmtp: cannot read from TLS connection: the operation timed out
bagaimana ya?
Latief
mohon ijin bertanya, untuk mengirim data user (ke email yang didaftrakan) setelah membuat akun di EPrints apakah bisa menggunakan ini? terimakasih
Agung Prasetyo
Bisa…harusnya ketika ada user mendaftar, maka mereka akan mendapat link untuk mengaktivasi akun yg sudah mereka buat.
AntonBM