Home  >  Article  >  Backend Development  >  稳定经得住考验的smtp发送邮件的类(请付上使用方法),万分感谢

稳定经得住考验的smtp发送邮件的类(请付上使用方法),万分感谢

WBOY
WBOYOriginal
2016-06-13 13:51:541283browse

求一个稳定经得住考验的smtp发送邮件的类(请付上使用方法),万分感谢!
我找了几个,有的不能用,发不出,有的居然没有正文;
还有一个正文这些都有,但没发几封就说 "帐号已经被锁定 ",discuz\phpwind这些的邮件类又搞得太复杂,剥离不出来!

谢谢拉!!!
用mail函数和iis得smtp,它又老是说address   invalid!怎么改地址都不行: "aaa "   or   "aaa@163.com ",都是错得

如果比较大,lein_urg@163.com,请发到邮箱,谢谢!
发邮件者20分起哈,如果正确得话60分起!

------解决方案--------------------
class smtp
{
/* Public Variables */
var $smtp_port;
var $time_out;
var $host_name;
var $log_file;
var $relay_host;
var $debug;
var $auth;
var $user;
var $pass;

/* Private Variables */
var $sock;

/* Constractor */
function smtp($relay_host = " ", $smtp_port = 25,$auth = false,$user,$pass)
{
$this-> debug = FALSE;
$this-> smtp_port = $smtp_port;
$this-> relay_host = $relay_host;
$this-> time_out = 30; //is used in fsockopen()
$this-> auth = $auth;//auth
$this-> user = $user;
$this-> pass = $pass;
$this-> host_name = "localhost "; //is used in HELO command
$this-> log_file = " ";
$this-> sock = FALSE;
}

/* Main Function */
function sendmail($to, $from, $subject = " ", $body = " ", $mailtype, $cc = " ", $bcc = " ", $additional_headers = " ")
{
$mail_from = $this-> get_address($this-> strip_comment($from));
$body = ereg_replace( "(^|(\r\n))(\.) ", "\1.\3 ", $body);
$header .= "MIME-Version:1.0\r\n ";
if($mailtype== "HTML ")
{
$header .= "Content-Type:text/html\r\n ";
}
$header .= "To: ".$to. "\r\n ";
if ($cc != " ")
{
$header .= "Cc: ".$cc. "\r\n ";
}
$header .= "From: $from \r\n ";
$header .= "Subject: ".$subject. "\r\n ";
$header .= $additional_headers;
$header .= "Date: ".date( "r "). "\r\n ";
$header .= "X-Mailer:By Redhat (PHP/ ".phpversion(). ")\r\n ";
list($msec, $sec) = explode( " ", microtime());
$header .= "Message-ID: \r\n ";
$TO = explode( ", ", $this-> strip_comment($to));

if ($cc != " ")
{
$TO = array_merge($TO, explode( ", ", $this-> strip_comment($cc)));
}
if ($bcc != " ")
{
$TO = array_merge($TO, explode( ", ", $this-> strip_comment($bcc)));
}
$sent = TRUE;
foreach ($TO as $rcpt_to)
{
$rcpt_to = $this-> get_address($rcpt_to);
if (!$this-> smtp_sockopen($rcpt_to))
{
$this-> log_write( "Error: Cannot send email to ".$rcpt_to. "\n ");
$sent = FALSE;
continue;
}
if ($this-> smtp_send($this-> host_name, $mail_from, $rcpt_to, $header, $body))
{
$this-> log_write( "E-mail has been sent to \n ");
}
else
{
$this-> log_write( "Error: Cannot send email to \n ");
$sent = FALSE;
}
fclose($this-> sock);
$this-> log_write( "Disconnected from remote host\n ");
}
return $sent;

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn