Februari 24, 2008
Email Menggunakan PHP (Yahoo Mail by pass)
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”;
}
}



ardian berkata,
Februari 24, 2008 pada 2:43 pm
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
ardian berkata,
Februari 24, 2008 pada 2:44 pm
yang bener mas tuh temannya ?
fuad berkata,
Februari 25, 2008 pada 1:32 am
Tips ini berlaku untuk yahoo juga kok. Aku anggap teman soalnya sudah bantu :)
vcrack berkata,
Februari 25, 2008 pada 2:01 pm
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..
fuad berkata,
Februari 26, 2008 pada 4:35 am
pake smtp atau langsung dikirim?
vcrack berkata,
Februari 28, 2008 pada 5:08 pm
langsung dikirim mas..
monza berkata,
Juni 8, 2008 pada 8:02 am
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
monza berkata,
Juni 8, 2008 pada 8:08 am
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
fuad berkata,
Juni 8, 2008 pada 1:03 pm
Cuma kalo pake fungsi mail() default php, sering dianggap spam sama Yahoo Mail.
lusy berkata,
Februari 18, 2009 pada 9:29 am
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 berkata,
Januari 11, 2012 pada 3:08 pm
kok di php.ini sy tidak ada “;extension=php_openssl.dll” ????mohon bantuanya mas??
fuad berkata,
Januari 12, 2012 pada 4:49 am
install php open ssl dulu, ini coba n ny di linux atw windows?
Lutfi berkata,
Maret 30, 2009 pada 4:06 am
@lusy: coba buka file php.ini, di bagian extension=php_openssl.dll dihilangin tanda ; nya
rany berkata,
April 2, 2009 pada 8:38 am
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….
lutfi berkata,
Mei 26, 2009 pada 1:31 am
katanya Google pake SMTPSecure = “tsl”
bisa diliat di :http://www.bluehostforum.com/archive/index.php/t-11824.html
Yudy berkata,
Agustus 17, 2009 pada 8:48 am
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?