Vote for this blog. Thank you

agungprasetyo blog's

It's about technology and life experience

Alternatif Sistem Pengiriman Email di Eprints via Gmail SMTP Menggunakan MSMTP

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.

eprints-admin-send_test_email
eprints-mail-error


Sistem email belum terkonfigurasi

eprints-mail-success


Sistem email sudah terkonfigurasi dengan benar

Cek email yang tadi dibuat sebagai contoh, seharusnya ada email dengan subyek “Test Email”.

eprints-mail-gmail

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

Previous

Huawei Ascend D1 Quad XL – Cara Mengatasi Bootloop Menggunakan Huawei Update Extractor

Next

Buatlah Perubahan Yang Lebih Baik ; Untuk Dirimu Atau Orang Lain

38 Comments

  1. 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 😀

  2. Ahya

    terima kasih mas..

  3. 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

    • 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?

        • 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

  4. Yusuf

    saya sudah ikuti settingannya mas, tapi kenapa kalo test sendmail bisa kalo create account baru email Registrationnya tidak terkirim yah mas?
    terimakasih

  5. sepyan

    saya juga belum bisa padahal sudah saya ikuti
    repo.untag-banyuwangi.ac.id

  6. 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

  7. eko

    Misi mas
    cara mengatasi :

    msmtp: cannot read from TLS connection: the operation timed out

    bagaimana ya?

  8. Latief

    mohon ijin bertanya, untuk mengirim data user (ke email yang didaftrakan) setelah membuat akun di EPrints apakah bisa menggunakan ini? terimakasih

  9. AntonBM