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

    assalamualaikum Mas Agung,

    mau nanya nih mas,

    saya install eprints 3.4, email.pl nya kok ga ada ya mas di
    archives/ARCHIVES_ID/cfg/cfg.d/email.pl

    jadi send_mail nya ga jalan waktu register user

  10. Heri Kuswanto

    Fitur Send Mail berfungsi, akan tetapi email tidak diterima ke email tujuan. masalahnya dimana?

  11. Destri

    mas Agung kalau di eprint 3.4.2 file email.pl ada dimana ya mas?

  12. [ Error writing archives/sir2014/cfg/cfg.d/email.pl: Permission denied ]

    bagaimana kalo errornya seperti ini. ini terjadi pada saat tahapan Menghubungkan MSMTP ke Eprints

    • Cek hak akses pada file tersebut. Harusnya edit pada file menggunakan user eprints.

      • Udah pake user root, dapat pesan begini : Error writing archives/sir2014/cfg/cfg.d/email.pl: No such file or directory

        • Maaf..mas tidk membaca reply saya sebelumnya ya? utk merubah akses di folder /usr/share/eprints3 itu harus pakai user eprints mas..bukan user root. Lalu itu kok /archives/sir2014 ? apakah benar nama archive_ID nya sir2014? harus sesuai dgn archive_ID yang ada server Anda.

  13. Arif Khoiruddin

    Alhamdulillah sangat membantu

  14. Udah dijalankan semua tapi saat test send email muncul pesan

    “The system is currently unable to send email. Please try again later. If this problem persists, please contact the administrator with details.” di UI Eprints

  15. Terima kasih atas tutorial nya mas Agung, saya sudah ikuti tutorial nya, tapi belum berhasil. Saya cek msmtp –serverinfo –host=smtp.gmail.com –tls=on –tls-certcheck=off –port=587, notif nya msmtp: cannot connect to smtp.gmail.com, port 587: Connection timed out.
    Dan pada saat cek send test email dari Eprints, notif nya menyatakan Success tapi sy cek di email tidak masuk (di inbox maupun di spam). di gmail sy sudah setting allow less secure apps ON. ini link nya mas : http://repository.unismabekasi.ac.id/

    • Alif

      Permasalahan nya demikian.
      msmtp: cannot connect to smtp.gmail.com, port 587: Connection timed out
      Solusinya seperti apa ya

  16. Sebelumnya terimakasih tutorialnya pak agung.
    saya mau nanya, apakh di eprints tidak ada library sendiri untuk send email sehingga harus menggunakan MSMTP ?
    jika ada, mohon dibantu referensinya
    terikasih

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Powered by Lovecraft & Theme by Anders Norén

Policy Privacy | Disclaimer

Verified by MonsterInsights