欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【讲解用PHP实现Jmai组件及发送邮件三例】,下面是详细的分享!
讲解用PHP实现Jmai组件及发送邮件三例
代码一:
| <% On error resume next Dim JMail, contentId Set JMail=Server.CreateObject("JMail.Message") JMail.Charset="gb2312" ' 邮件字符集,默认为"US-ASCII" ' JMail.ISOEncodeHeaders=False ' 是否进行ISO编码,默认为True ' 发送者信息(可用变量方式赋值) JMail.From="webjxcom@163.com" ' 发送者地址 JMail.FromName="网站管理员" ' 发送者姓名 JMail.Subject="邮件主题" ' 邮件主题 ' 身份验证 JMail.MailServerUserName="webjx" ' 身份验证的用户名 JMail.MailServerPassword="webjx" ' 身份验证的密码 ' 设置优先级,范围从1到5,越大的优先级越高,3为普通 JMail.Priority=1 JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR") ' 加入一个收件人【变量email:收件人地址】可以同一语句重复加入多个 JMail.AddRecipient("5ss@163.com") ' 加入附件【变量filename:附件文件的绝对地址,确保用户IUSR_机器名有访问的权限】 ' 【参数设置是(True)否(False)为Inline方式】 'contentId=JMail.AddAttachment (Server.MapPath("jmail.asp"), True) ' 邮件主体(HTML(注意信件内链接附件的方式)) 'JMail.AppendBodyFromFile(Server.MapPath("/Love/Inc/Mailend.txt")) JMail.HTMLBody="<html><head><META content=zh-cn http-equiv=Content-Language><meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312""><style type=text/css>A:link { FONT-SIZE: 9pt; TEXT-DECORATION: none; color: #000000}A:visited {FONT-SIZE: 9pt; TEXT-DECORATION: none; color: #666666}A:hover {COLOR: #ff6600; FONT-SIZE: 9pt; TEXT-DECORATION: underline}BODY {FONT-SIZE: 9pt} --></style></head><body><font color=red>邮件正文</font><br><font color=green>邮件正文</font><br><b>邮件正文</b></body></html>" ' 邮件主体(文本部分) JMail.Body="我们的邮件采用了HTML格式,但是您的邮件查看软件可能不支持。。。邮件正文,邮件正文,邮件正文" ' 发送【调用格式:objJMail.Send([username:password@]SMTPServerAddress[:Port])】 JMail.Send("smtp.163.com") ' 关闭并清除对象 JMail.Close() Set JMail=Nothing if err.number<>0 then response.write "发送发送失败!" else response.write "邮件发送成功!" end if %> |
代码二:
| //***************************************************************** // *.php 使用文件,看清楚了,怎么使用在这里 // //***************************************************************** <?php //require (FILE_DIR."smtp.php"); $smtpserver="smtp.163.com";//SMTP服务器 $smtpserverport=25;//SMTP服务器端口 $smtpusermail="webjx@163.com";//SMTP服务器的用户邮箱 $smtpemailto="webjx@163.com";//发送给谁 $smtpuser="webjx";//SMTP服务器的用户帐号 $smtppass="webjx";//SMTP服务器的用户密码 $mailsubject="Test Subject";//邮件主题 $mailbody="<h1>This is a test mail</h1>";//邮件内容 $mailtype="HTML";//邮件格式(HTML/TXT),TXT为文本邮件 $smtp=new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证. $smtp->debug=TRUE;//是否显示发送的调试信息 $smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype); ?> |
class smtp
{
var $smtp_port;
var $time_out;
var $host_name;
var $log_file;
var $relay_host;
var $debug;
var $auth;
var $user;
var $pass;
var $sock;
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;
}
function sendmail($to, $from, $subject="", $body="", $mailtype, $cc="", $bcc="", $additional_headers="")
{
$mail_from=$this->get_address($this->strip_comment($from));
$body=ereg_replace("(^|( ))(.)", "1.3", $body);
$header="MIME-Version:1.0 ";
if($mailtype=="HTML"){
$header .="Content-Type:text/html ";
}
$header .="To: ".$to." ";
if ($cc !="") {
$header .="Cc: ".$cc." ";
}
$header .="From: $from<".$from."> ";
$header .="Subject: ".$subject." ";
$header .=$additional_headers;
$header .="Date: ".date("r")." ";
$header .="X-Mailer:By Redhat (PHP/".phpversion().") ";
list($msec, $sec)=explode(" ", microtime());
$header .="Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from."> ";
$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." ");
$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 <".$rcpt_to."> ");
} else {
$this->log_write("Error: Cannot send email to <".$rcpt_to."> ");
$sent=FALSE;
}
fclose($this->sock);
$this->log_write("Disconnected from remote host ");
}
return $sent;
}
function smtp_send($helo, $from, $to, $header, $body="")
{
if (!$this->smtp_putcmd("HELO", $helo)) {
return $this->smtp_error("sending HELO command");
}
#auth
if($this->auth){
if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) {
return $this->smtp_error("sending HELO command");
}
if (!$this->smtp_putcmd("", base64_encode($this->pass))) {
return $this->smtp_error("sending HELO command");
}
}
#
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">")) {
return $this->smtp_error("sending MAIL FROM command");
}
if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) {
return $this->smtp_error("sending RCPT TO command");
}
if (!$this->smtp_putcmd("DATA")) {
return $this->smtp_error("sending DATA command");
}
if (!$this->smtp_message($header, $body)) {
return $this->smtp_error("sending message");
}
if (!$this->smtp_eom()) {
return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]");
}
if (!$this->smtp_putcmd("QUIT")) {
return $this->smtp_error("sending QUIT command");
}
return TRUE;
}
function smtp_sockopen($address)
{
if ($this->relay_host=="") {
return $this->smtp_sockopen_mx($address);
} else {
return $this->smtp_sockopen_relay();
}
}
function smtp_sockopen_relay()
{
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port." ");
$this->sock=@fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok())) {
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host." ");
$this->log_write("Error: ".$errstr." (".$errno.") ");
return FALSE;
}
$this->log_write("Connected to relay host ".$this->relay_host." ");
return TRUE;
}
function smtp_sockopen_mx($address)
{
$domain=ereg_replace("^.+@([^@]+)$", "1", $address);
if (!@getmxrr($domain, $MXHOSTS)) {
$this->log_write("Error: Cannot resolve MX "".$domain."" ");
return FALSE;
}
foreach ($MXHOSTS as $host) {
$this->log_write("Trying to ".$host.":".$this->smtp_port." ");
$this->sock=@fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok())) {
$this->log_write("Warning: Cannot connect to mx host ".$host." ");
$this->log_write("Error: ".$errstr." (".$errno.") ");
continue;
}
$this->log_write("Connected to mx host ".$host." ");
return TRUE;
}
$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).") ");
return FALSE;
}
function smtp_message($header, $body)
{
fputs($this->sock, $header." ".$body);
$this->smtp_debug("> ".str_replace(" ", " "."> ", $header." > ".$body." > "));
return TRUE;
}
function smtp_eom()
{
fputs($this->sock, " . ");
$this->smtp_debug(". [EOM] ");
return $this->smtp_ok();
}
function smtp_ok()
{
$response=str_replace(" ", "", fgets($this->sock, 512));
$this->smtp_debug($response." ");
if (!ereg("^[23]", $response)) {
fputs($this->sock, "QUIT ");
fgets($this->sock, 512);
$this->log_write("Error: Remote host returned "".$response."" ");
return FALSE;
}
return TRUE;
}
function smtp_putcmd($cmd, $arg="")
{
if ($arg !="") {
if($cmd=="") $cmd=$arg;
else $cmd=$cmd." ".$arg;
}
fputs($this->sock, $cmd." ");
$this->smtp_debug("> ".$cmd." ");
return $this->smtp_ok();
}
function smtp_error($string)
{
$this->log_write("Error: Error occurred while ".$string.". ");
return FALSE;
}
function log_write($message)
{
$this->smtp_debug($message);
if ($this->log_file=="") {
return TRUE;
}
$message=date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message;
if (!@file_exists($this->log_file) || !($fp=@fopen($this->log_file, "a"))) {
$this->smtp_debug("Warning: Cannot open log file "".$this->log_file."" ");
return FALSE;;
}
flock($fp, LOCK_EX);
fputs($fp, $message);
fclose($fp);
return TRUE;
}
function strip_comment($address)
{
$comment="([^()]*)";
while (ereg($comment, $address)) {
$address=ereg_replace($comment, "", $address);
}
return $address;
}
function get_address($address)
{
$address=ereg_replace("([ ])+", "", $address);
$address=ereg_replace("^.*<(.+)>.*$", "1", $address);
return $address;
}
function smtp_debug($message)
{
if ($this->debug) {
echo $message;
}
}
}
?>
以上所分享的是关于讲解用PHP实现Jmai组件及发送邮件三例,下面是编辑为你推荐的有价值的用户互动:
相关问题:我的phpmailer组件在本地能一切正常,但是上传到空...
答:看了每次,我的代码给你参考下,我能发送成功的,希望有帮助,账号密码涂成了xxx,相信你懂得 header("Content-Type: text/html;charset=utf-8"); include 'PHPMailer/class.phpmailer.php'; $mail=new PHPMailer(); $mail->IsSMTP(); $mail->Hos... >>详细
相关问题:Jmail的用法 .求源代码 :html php 或asp (用户提...
答:数据库操作我就不写了... 下面是JMAIL发件代码. Set JMail = Server.CreateObject("JMail.Message") '是否将信头编码成iso-8859-1字符集. 缺省是True JMail.ISOEncodeHeaders = False '如果JMail.silent设置为true,ErrorCode包含的是错误代码 JM... >>详细
相关问题:我用php语言,用jmail组件发邮件,用163的smtp发送...
答:我也用免费的163和QQ邮箱做过jmail群发,一次性发送量过多时,网易和腾讯就将邮箱转至垃圾箱,有时甚至直接屏蔽了 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
