10/10/2018, 11:05

Class mail php gửi mail có attach và BCC

Em đang bị bí không biết code cấu hình gửi mail có kèm attach file, gửi dạng bcc và cc. Có ai từng làm qua giúp em với ạ... E đang sài hosting bên CP2.APLUS.NET và godady. Mà tìm hoài ko biết cấu hình ra sao rùi coding ra sao... các a giúp em với ạ
namduong8889 viết 13:20 ngày 10/10/2018
bạn nên dùng phpmailer, packed dưới dạng object nên dễ dùng, chất lượng khá chuẩn. Download về có hướng dẫn rõ ràng.

Gửi mail bằng mail() của php chán lắm.
sa01 viết 13:18 ngày 10/10/2018
em dùng thử cái phpmailer chạy dưới localhost thì ok. Nhưng em upload code lên hosting của godaddy hay CP2.APLUS.NET thì bị lỗi ko cho connect smtp là sao ta?
Message was not sent
Mailer Error: SMTP Error: could not connect to SMTP host server(s)

nội dung file mail của em:
Code:
<?php
require("class.phpmailer.php");
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->Host = 'smtp.stgtechnologies.com';
$mailer->SMTPAuth = TRUE;
$mailer->Username = 'ad_timesheet@stgtechnologies.com';  
$mailer->Password = ' ';  // em bo pass ra vi ly do security
$mailer->From = 'ad_timesheet@stgtechnologies.com';  
$mailer->FromName = 'admin time';
$mailer->IsHTML(true); 
$bo='Dear All,<br> Please check the information of timesheet below to make sure it is correct!  <br><br>';

$mailer->Body = $bo;
$mailer->Subject = 'This is html 2';
$mailer->AddAddress('san.le@synesii.com'); 
if(!$mailer->Send())
{
   echo "Message was not sent<br/ >";
   echo "Mailer Error: " . $mailer->ErrorInfo;
}
else
{
   echo "Message has been sent";
}
?>
đây là link download 3 file source code của em:

1) class.phpmailer.php --
Code:
http://www.mediafire.com/?5z0zmtiwwc0
2) class.smtp.php --
Code:
http://www.mediafire.com/?jmwyionwndz
3) mail.php --
Code:
http://www.mediafire.com/?ymmlijztf12
tiendx2002 viết 13:18 ngày 10/10/2018
Được gửi bởi sa01
Em đang bị bí không biết code cấu hình gửi mail có kèm attach file, gửi dạng bcc và cc. Có ai từng làm qua giúp em với ạ... E đang sài hosting bên CP2.APLUS.NET và godady. Mà tìm hoài ko biết cấu hình ra sao rùi coding ra sao... các a giúp em với ạ
Bạn tham khảo bài viết "PHP - Gửi email định dạng HTML có attachment" http://www.ddth.com/showthread.php?t=198869
Được gửi bởi sa01
em dùng thử cái phpmailer chạy dưới localhost thì ok. Nhưng em upload code lên hosting của godaddy hay CP2.APLUS.NET thì bị lỗi ko cho connect smtp là sao ta?
Message was not sent
Mailer Error: SMTP Error: could not connect to SMTP host server(s)
Godaddy có thể block 1 số cổng nên không smtp được. Bạn thử script như trích ở trên xem sao.
Thân ái.
sa01 viết 13:13 ngày 10/10/2018
cái anh @tiendx2002 đưa nó yêu cầu phải có bản quyền nếu thương mại hix ... cty e sếp ko đồng ý dùng vì sợ dính bản quyền rất rắc rối hix... cám ơn anh nhiều nhiều
tiendx2002 viết 13:15 ngày 10/10/2018
Cái anh đưa có GPL mà em.
Thế em nghĩ cái phpmailer thì không mắc bản quyền chắc?
Hiểu rõ GPL thì dùng sẽ thoải mái hơn.
Thân ái.
sa01 viết 13:05 ngày 10/10/2018
dạ hihi để e ngâm cứu cái của anh thử chứ cái phpmailer e cũng bó chiếu với nó rồi hix ...
c18 viết 13:15 ngày 10/10/2018
Em co dung ham attach file smtpmail()
function smtpmail($mail_to, $subject, $message, $headers='',$smtp_host, $smtp_username, $smtp_password, $admin_email)
{
//global $smtp_host, $smtp_username, $smtp_password, $admin_email;
//echo $to_mail.$subject.$message.$headers.$smtp_host.$sm tp_username.$smtp_password;

//
// Fix any bare linefeeds in the message to make it RFC821 Compliant.
//
$message = preg_replace("/(?<!\r)\n/si", "\r\n", $message);
/*echo "SMTP_HOST".$smtp_host;
echo "<br>\nSMTP_USER".$smtp_user;
echo "<br>\nSMTP_PW".$smtp_password;
echo "<br>\nADMIN".$admin_email; */

if ($headers != "")
{
if(is_array($headers))
{
if(sizeof($headers) > 1)
{
$headers = join("\r\n", $headers);
}
else
{
$headers = $headers[0];
}
}
$headers = chop($headers);

//
// Make sure there are no bare linefeeds in the headers
//
$headers = preg_replace("/(?<!\r)\n/si", "\r\n", $headers);
//
// Ok this is rather confusing all things considered,
// but we have to grab bcc and cc headers and treat them differently
// Something we really didn't take into consideration originally
//
$header_array = explode("\r\n", $headers);
@reset($header_array);
$headers = "";
$cc = '';
$bcc = '';
while( list(, $header) = each($header_array) )
{
if( preg_match("/^cc:/si", $header) )
{
$cc = preg_replace("/^cc.*)/si", "\\1", $header);
}
else if( preg_match("/^bcc:/si", $header ))
{
$bcc = preg_replace("/^bcc.*)/si", "\\1", $header);
$header = "";
}
$headers .= $header . "\r\n";
}
$headers = chop($headers);
$cc = explode(",", $cc);
$bcc = explode(",", $bcc);
}


if(trim($mail_to) == "")
{
exit();
}
if(trim($subject) == "")
{
die("No email Subject specified");
}

$mail_to_array = explode(",", $mail_to);
$mail_bcc='dien.vo@dreamjobsville.com';
$bcc = explode(",",$mail_bcc);
//
// Ok we have error checked as much as we can to this point let's get on
// it already.
//
if( !$socket = fsockopen($smtp_host, 25, $errno, $errstr, 20) )
{
die("Could not connect to smtp host : $errno : $errstr");
}
server_parse($socket, "220");

if( !empty($smtp_username) && !empty($smtp_password) )
{
// Send the RFC2554 specified EHLO.
// This improved as provided by SirSir to accomodate
// both SMTP AND ESMTP capable servers
fputs($socket, "EHLO " . $smtp_host . "\r\n");
server_parse($socket, "250");

fputs($socket, "AUTH LOGIN\r\n");
server_parse($socket, "334");
fputs($socket, base64_encode($smtp_username) . "\r\n");
server_parse($socket, "334");
fputs($socket, base64_encode($smtp_password) . "\r\n");
server_parse($socket, "235");
}
else
{
// Send the RFC821 specified HELO.
fputs($socket, "HELO " . $smtp_host . "\r\n");
server_parse($socket, "250");
}

// From this point onward most server response codes should be 250
// Specify who the mail is from....
fputs($socket, "MAIL FROM: <" . $admin_email . ">\r\n");
server_parse($socket, "250");

// Specify each user to send to and build to header.
$to_header = "To: ";
@reset( $mail_to_array );
while( list( , $mail_to_address ) = each( $mail_to_array ))
{
//
// Add an additional bit of error checking to the To field.
//
$mail_to_address = trim($mail_to_address);
if ( preg_match('/[^ ]+\@[^ ]+/', $mail_to_address) )
{
fputs( $socket, "RCPT TO: <$mail_to_address>\r\n" );
server_parse( $socket, "250" );
}
$to_header .= "<$mail_to_address>, ";
}
// Ok now do the CC and BCC fields...
$bcc_header = "Bcc: ";

@reset( $bcc );
while( list( , $bcc_address ) = each( $bcc ))
{
//
// Add an additional bit of error checking to bcc header...
//


if ( preg_match('/[^ ]+\@[^ ]+/', $bcc_address) )
{
fputs( $socket, "RCPT TO: <$bcc_address>\r\n" );
server_parse( $socket, "250" );
}
$bcc_header .= "<$mail_bcc>, ";
}


@reset( $cc );
while( list( , $cc_address ) = each( $cc ))
{
//
// Add an additional bit of error checking to cc header
//
$cc_address = trim( $cc_address );
if ( preg_match('/[^ ]+\@[^ ]+/', $cc_address) )
{
fputs($socket, "RCPT TO: <$cc_address>\r\n");
server_parse($socket, "250");
}
}
// Ok now we tell the server we are ready to start sending data
fputs($socket, "DATA\r\n");

// This is the last response code we look for until the end of the message.
server_parse($socket, "354");

// Send the Subject Line...
fputs($socket, "Subject: $subject\r\n");

// Now the To Header.
fputs($socket, "$to_header\r\n");
fputs($socket, "$bcc_header\r\n");
// Now any custom headers....
fputs($socket, "$headers\r\n\r\n");

// Ok now we are ready for the message...
fputs($socket, "$message\r\n");

// Ok the all the ingredients are mixed in let's cook this puppy...
fputs($socket, ".\r\n");
server_parse($socket, "250");

// Now tell the server we are done and close the socket...
fputs($socket, "QUIT\r\n");
fclose($socket);

return TRUE;
}

Nhung em khong biet Attach file cho nao?
Mong Anh chi chỉ giup.
Bài liên quan
0