none
(Sumber: milist DOTNET) Kirim e-mail melalui network tertentu RRS feed

  • Pertanyaan

  •  

    Dear guys,

    Saya buat aplikasi e-mail sender dengan winform di server. Aplikasi baca database, jika ada row baru untuk pengiriman e-mail, maka akan dikirim e-mail dengan data yang bersangkutan. Belakangan ini aplikasi saya tiba-tiba gak jalan. Kalo saya liat dari errornya, seakan-akan gak bisa konek ke smtp server. Tapi kalo saya test dengan menggunakan IP luar pengiriman e-mail bisa cepet.

    Kebetulan diserver menggunakan 2 NIC, dimana 1 NIC menggunakan IP internal.

    Misalkan di server ip internalnya : 172.1.1.0 trus externalnya : 202.1.158.60, smtp server smtp.gmail.com.
    Nah saya mao konek ke smtp tersebut melalui ip 172, bukan 202 atau sebaliknya.

    Pertanyaannya : bisa gak pada pada saat akan mengirim e-mail tersebut kita menggunakan IP tertentu melalui koding?


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Selasa, 06 Maret 2012 07.53
    Moderator

Jawaban

  •  

    Bisa, pake perintah "route". Tepatnya, "route -p add". Ini akan menambahkan "explicit static route" yang diprioritaskan sebelum "default route" (default gateway".

    Routing table umumnya bekerja dengan sistem "longest match first, shortest distance second". Jadi, kalau ada beberapa kemungkinan routing, pertama dipilih route yang destinationnya paling panjang matchnya.

    Contoh: Paket 10.2.5.14, lalu di routing table ada 2 route: 10.0.0.0/8 lewat NIC 1, 10.2.5.0/24 lewat NIC 2, maka akan dipilih route yang kedua karena match nya 24 bit (route pertama match nya hanya 8 bit).

    Dimungkinkan ada lebih dari satu route dengan destination yang sama. Misal: 172.16.0.0/16 lewat NIC 1 distance 10, 172.16.0.0/16 lewat NIC 2 distance 20. Dalam hal ini, routing akan melalui NIC 1 (karena distance nya paling kecil).

    Default Route kalau kita perhatikan, destination nya adalah 0.0.0.0/0. Dengan kata lain, match nya pasti sebanyak 0 bit (alias, nggak ada yang match). Jadi kalau seluruh routing table udah dicek nggak ada yang match, maka dipakailah route yang match nya 0 ini.

    Itulah sebabnya disebut "default route" atau "default gateway": yaitu route yang secara default akan dipakai kecuali ada route lain yang lebih spesifik.

    Dijawab oleh: Pandu Poluan


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Selasa, 06 Maret 2012 07.55
    Moderator

Semua Balasan

  •  

    Oh jadi begini maksudnya,

        SmtpClient smtpClient = new SmtpClient("172.1.1.0", 587);   // 172.1.1.0 --> smtp.gmail.com

        smtpClient.EnableSsl = true;

        NetworkCredential nc = new NetworkCredential("username""password");

        smtpClient.UseDefaultCredentials = false;

        smtpClient.Credentials = nc;

    Ini bisa dengan menggunakan Routing pada L2 Switch atau L3 Switch-nya. Routing table-nya gimana di L2, atau apa pakai L3? Di Route aja IP-nya dari internal 172.1.1.0 menjadi smtp.gmail.com dengan port yang sama (587). Biasanya dua kabel dari masing2 NIC masuk ke L2 Switch, di dalam Switch itu bisa di Route.

    Tapi kalau tidak pakai switch saya belum pernah coba direct NIC to NIC routing pada internal server. Atau mungkin ada cari lain saya belum pernah coba.

    Dijawab oleh: Riza Marhaban


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Selasa, 06 Maret 2012 07.54
    Moderator
  •  

    Bisa, pake perintah "route". Tepatnya, "route -p add". Ini akan menambahkan "explicit static route" yang diprioritaskan sebelum "default route" (default gateway".

    Routing table umumnya bekerja dengan sistem "longest match first, shortest distance second". Jadi, kalau ada beberapa kemungkinan routing, pertama dipilih route yang destinationnya paling panjang matchnya.

    Contoh: Paket 10.2.5.14, lalu di routing table ada 2 route: 10.0.0.0/8 lewat NIC 1, 10.2.5.0/24 lewat NIC 2, maka akan dipilih route yang kedua karena match nya 24 bit (route pertama match nya hanya 8 bit).

    Dimungkinkan ada lebih dari satu route dengan destination yang sama. Misal: 172.16.0.0/16 lewat NIC 1 distance 10, 172.16.0.0/16 lewat NIC 2 distance 20. Dalam hal ini, routing akan melalui NIC 1 (karena distance nya paling kecil).

    Default Route kalau kita perhatikan, destination nya adalah 0.0.0.0/0. Dengan kata lain, match nya pasti sebanyak 0 bit (alias, nggak ada yang match). Jadi kalau seluruh routing table udah dicek nggak ada yang match, maka dipakailah route yang match nya 0 ini.

    Itulah sebabnya disebut "default route" atau "default gateway": yaitu route yang secara default akan dipakai kecuali ada route lain yang lebih spesifik.

    Dijawab oleh: Pandu Poluan


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Selasa, 06 Maret 2012 07.55
    Moderator
  •  

    dear all,

    thx atas bantuannya, setelah di tambahin routing, akhirnya bisa aplikasi-nya berjalan dengan sukses 

    sekali lagi terima kasih semua


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Selasa, 06 Maret 2012 07.56
    Moderator