Februari 24, 2008

Email Menggunakan PHP (Yahoo Mail by pass)

Posted in komputer, php tagged , , pada 11:06 am oleh fuad

Fuad Dwi Rizki

Mengirim email menggunakan PHP sebenarnya bukan perkara sulit. Karena Php telah memiliki fungsi built in “mail”. mail($to,$subject,$body);

Untuk beberapa mail server, fungsi mail akan berjalan dengan baik(Gmail salah satunya). Tetapi ada sebagian mail server yang langsung menganggap email yang dikirim oleh “mail” adalah spam seperti Yahoo dan Hotmail. Hal ini disebabkan karena email yang dikirim tidak memiliki signature.

Untuk mengatasinya saya mendapat tips dari teman saya untuk menggunakan phpmailer, dengan memanfaatkan smtp server yang gratis seperti Gmail.
Berikut ini adalah kode yang saya gunakan dengan library dari phpmailer.

include_once(“libs/class.phpmailer.php”);
include_once(“libs/class.smtp.php”);

function mailViaGmail ($gmail_username,$gmail_password,$from,$sender,

$subject,$body,$recipient,recipient_name,$header){

$mail=new PHPMailer();
$mail->IsSMTP();

$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = “ssl”; // sets the prefix to the servier

$mail->Host = “smtp.gmail.com”; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port

$mail->Username = $gmail_username; // GMAIL username
$mail->Password = $gmail_password; // GMAIL password

$mail->From = $from;
$mail->FromName = $sender;

$mail->Subject = $subject;
$mail->Body = “$body”; //HTML
$mail->AddCustomHeader($header);

//$mail->AltBody = “$body”;
//Text Body

//$mail->WordWrap = 50; // set word wrap

$mail->AddAddress(“$recipient”,”$recipient_name”);
$mail->AddReplyTo(“$from”,”$sender”);
$mail->IsHTML(false); // send as HTML

if(!$mail->Send()) {

echo “Mailer Error: ” . $mail->ErrorInfo;

} else {

echo “Message has been sent”;

}
}

16 Komentar »

  1. ardian said,

    assalamu`alaikum mas fuad. ok, tips di atas untuk gmail, kalo yang y! mail ada solusinya kah ? terutama di wordpress jika kita izinkan user baru daftar, pasti masuknya ke bulk / spam nya. jazakalloh khoir

  2. ardian said,

    yang bener mas tuh temannya ?

  3. fuad said,

    Tips ini berlaku untuk yahoo juga kok. Aku anggap teman soalnya sudah bantu :)

  4. vcrack said,

    ku juga pernah buat sich mas.. kayak di kantinmilan itu..
    klo yg aku buat, suka angin2an mas… kadang dianggap sebagai spam kadang juga ndak..
    tapi aku buat class sendiri ndak pake lib phpMailer..
    Lib ini udah terkenal sich, klo ndak salah Joomla juga pake ini..

  5. fuad said,

    pake smtp atau langsung dikirim?

  6. vcrack said,

    langsung dikirim mas..

  7. monza said,

    kalo gitu gini aja, semua enjoy :

    <?php
    @$nama = addslashes($_POST[‘nama’]);
    @$email = addslashes($_POST[’email’]);
    @$body = addslashes($_POST[‘body’]);

    $pfw_header1 = “From: nama “;
    $pfw_subject1 = “Dari Aku”;
    $pfw_email_to1 = “$email”;
    $pfw_message1 = “$body.\n”;

    @mail($pfw_email_to1, $pfw_subject1 ,$pfw_message1 ,”From: orang keren “);
    ?>

    Nah, kan tinggal bikin form aja…Gitu aja kok repot sih

  8. monza said,

    kalo untuk phpmailer kadang2 suka kumat, kalo serv nya gk bagus.
    validasinya bisa pake kode ini :

    if (strlen($nama) == 0 )
    {
    header(“Location: eror.php”);
    exit;
    }

    if (! ereg(‘[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+’, $email))
    {
    header(“Location: eror.php”);
    exit;
    }

    if (strlen($body) == 0 )
    {
    header(“Location: eror.php”);
    exit;
    }

    Pasang kodenya di bawah variable, oke..
    Trus temen2 tinggal bikin file eror.php

    Kalo uda gini, kan gk mesti pake validasi dari PHPmailer

  9. fuad said,

    Cuma kalo pake fungsi mail() default php, sering dianggap spam sama Yahoo Mail.

  10. lusy said,

    alowww..
    saya coba pake phpmailer codenya:

    require_once(“class.smtp.php”);
    require_once(“class.phpmailer.php”);

    $mail = new PHPMailer();

    $mail->IsSMTP(); // send via SMTP
    $mail->Host = “smtp..gmail.com “; // SMTP servers
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->Username = “lusy”; // SMTP username
    $mail->Password = “****”; // SMTP password
    $mail->Port = 465; // set the SMTP port

    // pengirim
    $mail->From = “lucia_mendez77@yahoo.com”;
    $mail->FromName = “lusy”;

    // penerima
    $mail->AddAddress(“vmeong@yahoo.com”,”meong”);

    $mail->WordWrap = 50; // set word wrap
    $mail->IsHTML(true); // send as HTML

    $mail->Subject = “Questionnaire”;
    $mail->Body = “HAI”;
    $mail->AltBody = “This research is supported by Google.com”;

    if(!$mail->Send())
    {
    echo “Message was not sent “;
    echo “Mailer Error: ” . $mail->ErrorInfo;
    exit;
    }
    echo “Message has been sent”;

    tapi kok keluar error:
    Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/vhponli/public_html/q/view/class.smtp.php on line 122

    Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.gmail.com :465 in /home/vhponli/public_html/q/view/class.smtp.php on line 122
    Message was not sent
    Mailer Error: SMTP Error: Could not connect to SMTP host.

    any one can help me… thank you…

    • rini said,

      kok di php.ini sy tidak ada “;extension=php_openssl.dll” ????mohon bantuanya mas??

      • fuad said,

        install php open ssl dulu, ini coba n ny di linux atw windows?

  11. Lutfi said,

    @lusy: coba buka file php.ini, di bagian extension=php_openssl.dll dihilangin tanda ; nya

  12. rany said,

    mas…. makasih buat tips-nya

    tapi ada yang masih nyangkut nih mas…..
    saya udah coba pake server kantor berhasil….tapi kalo mo pake gmail kok jadi error….kira2 kenapa yah?
    yang udah saya ubah :
    1. extension=php_openssl.dll dihilangin tanda ; nya
    2. Port = 465
    3. pake>>> SMTPSecure = “ssl”;

    kira2 ada yang kurang ga yah????mohon pencerahannya mas….

  13. lutfi said,

    katanya Google pake SMTPSecure = “tsl”
    bisa diliat di :http://www.bluehostforum.com/archive/index.php/t-11824.html

  14. Yudy said,

    Mas bisa minta tolong dong…
    Saya udah coba sourcenya kirim dr localhost dan udah bisa kirim email ..
    Trus saya coba hosting kok error…
    “Language string failed to load: connect_host”
    Yg harus d setting apanya mas d hostingnya?


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: