您的位置:

php网站发送邮件,php接收邮件

本文目录一览:

如何在PHP中使用PHPMailer发送邮件

?php 

header("content-type:text/html;charset=utf-8"); 

ini_set("magic_quotes_runtime",0); 

require 'class.phpmailer.php'; 

try { 

$mail = new PHPMailer(true); 

$mail-IsSMTP(); 

$mail-CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码 

$mail-SMTPAuth = true; //开启认证 

$mail-Port = 25; 

$mail-Host = "smtp.163.com"; 

$mail-Username = "phpddt1990@163.com"; 

$mail-Password = "这是密码"; 

//$mail-IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示 

$mail-AddReplyTo("phpddt1990@163.com","mckee");//回复地址 

$mail-From = "phpddt1990@163.com"; 

$mail-FromName = ""; 

$to = "987044391@qq.com"; 

$mail-AddAddress($to); 

$mail-Subject = "phpmailer测试标题"; 

$mail-Body = "h1phpmail演示/h1这是php点点通(font color=red;/font)对phpmailer的测试内容"; 

$mail-AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略 

$mail-WordWrap = 80; // 设置每行字符串的长度 

//$mail-AddAttachment("f:/test.png"); //可以添加附件 

$mail-IsHTML(true); 

$mail-Send(); 

echo '邮件已发送'; 

} catch (phpmailerException $e) { 

echo "邮件发送失败:".$e-errorMessage(); 

?

php怎么实现发送邮件

PHP发送邮件是“非常的简单” 因为他提供了mail()函数直接发送,但配置相当麻烦 (1)通过mail()函数发送邮件 mail() 配置PHP.ini 邮件信息 需要类似sendmail这样的组件支持 (2)通过socket通讯,使用SMTP传输 socket连接-SMTP通讯-获取通讯消息-发送 mail函数的使用 mail() 函数允许您从脚本中直接发送电子邮件。 如果邮件的投递被成功地接收,则返回 true,否则返回 mail(to,subject,message,headers,parameters) socket方式发送原理 给你一个别人写好的类 用法在下面 本人经测试很多网站都不提供免费的smtp服务(126、sina、netease 这几个试过了),腾讯邮箱支持此功能。 用法: ? require_once ('email.class.php'); //########################################## $smtpserver = "smtp.163.com";//SMTP服务器 $smtpserverport =25;//SMTP服务器端口 $smtpusermail = "";//SMTP服务器的用户邮箱 $smtpemailto = "";//发送给谁 $smtpuser = "";//SMTP服务器的用户帐号 $smtppass = "";//SMTP服务器的用户密码 $mailsubject = "PHP100测试邮件系统";//邮件主题 $mailbody = "h1 这是一个测试程序 PHP100.com /h1";//邮件内容 $mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件 ########################################## $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证. $smtp-debug = FALSE;//是否显示发送的调试信息 $smtp-sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype); ? 邮件发送类 ? 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".$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: ".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from."\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 ".$rcpt_to."\n"); } else { $this-log_write("Error: Cannot send email to ".$rcpt_to."\n"); $sent = FALSE; } fclose($this-sock); $this-log_write("Disconnected from remote host\n"); } echo "br"; echo $header; return $sent; } /* Private Functions */ 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 CRLF.CRLF [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."\n"); $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."\n"); $this-log_write("Error: ".$errstr." (".$errno.")\n"); return FALSE; } $this-log_write("Connected to relay host ".$this-relay_host."\n"); return TRUE;; } function smtp_sockopen_mx($address) { $domain = ereg_replace("^.+@([^@]+)$", "\\1", $address); if (!@getmxrr($domain, $MXHOSTS)) { $this-log_write("Error: Cannot resolve MX \"".$domain."\"\n"); return FALSE; } foreach ($MXHOSTS as $host) { $this-log_write("Trying to ".$host.":".$this-smtp_port."\n"); $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."\n"); $this-log_write("Error: ".$errstr." (".$errno.")\n"); continue; } $this-log_write("Connected to mx host ".$host."\n"); return TRUE; } $this-log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n"); return FALSE; } function smtp_message($header, $body) { fputs($this-sock, $header."\r\n".$body); $this-smtp_debug(" ".str_replace("\r\n", "\n"." ", $header."\n ".$body."\n ")); return TRUE; } function smtp_eom() { fputs($this-sock, "\r\n.\r\n"); $this-smtp_debug(". [EOM]\n"); return $this-smtp_ok(); } function smtp_ok() { $response = str_replace("\r\n", "", fgets($this-sock, 512)); $this-smtp_debug($response."\n"); if (!ereg("^[23]", $response)) { fputs($this-sock, "QUIT\r\n"); fgets($this-sock, 512); $this-log_write("Error: Remote host returned \"".$response."\"\n"); return FALSE; } return TRUE; } function smtp_putcmd($cmd, $arg = "") { if ($arg != "") { if($cmd=="") $cmd = $arg; else $cmd = $cmd." ".$arg; } fputs($this-sock, $cmd."\r\n"); $this-smtp_debug(" ".$cmd."\n"); return $this-smtp_ok(); } function smtp_error($string) { $this-log_write("Error: Error occurred while ".$string.".\n"); 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."\"\n"); 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("([ \t\r\n])+", "", $address); $address = ereg_replace("^.*(.+).*$", "\\1", $address); return $address; } function smtp_debug($message) { if ($this-debug) { echo $message."br"; } } function get_attach_type($image_tag) { // $filedata = array(); $img_file_con=fopen($image_tag,"r"); unset($image_data); while ($tem_buffer=AddSlashes(fread($img_file_con,filesize($image_tag)))) $image_data.=$tem_buffer; fclose($img_file_con); $filedata['context'] = $image_data; $filedata['filename']= basename($image_tag); $extension=substr($image_tag,strrpos($image_tag,"."),strlen($image_tag)-strrpos($image_tag,".")); switch($extension){ case ".gif": $filedata['type'] = "image/gif"; break; case ".gz": $filedata['type'] = "application/x-gzip"; break; case ".htm": $filedata['type'] = "text/html"; break; case ".html": $filedata['type'] = "text/html"; break; case ".jpg": $filedata['type'] = "image/jpeg"; break; case ".tar": $filedata['type'] = "application/x-tar"; break; case ".txt": $filedata['type'] = "text/plain"; break; case ".zip": $filedata['type'] = "application/zip"; break; default: $filedata['type'] = "application/octet-stream"; break; } return $filedata; } } ?

怎么利用php发送邮件求详细教程

PHP虽然提供了mail()函数,但并不好用,而PHPMailer是一个不错的邮件发送工具,接下来将详细介绍,需要了解的朋友可以参考下:

本人使用wamp集成开发环境,Apache2.4.4, Mysql5.6.12 , php5.4.12.开始的时候使用mail()发送邮件,更改配置始终无法成功,了解到mail()函数使用需要sendmail程序。又下载了sendmail程序扩展包。按照网上的说法也改好了php.ini和sendmail.ini。使用foxmail 7.1创建了自己的qq邮箱账户,开启了POP3/SMTP服务,更改发件服务器为POP3,使用和收件服务器相同的身份验证,结果还是报错:Warning: mail(): SMTP server response: 503 Error: need EHLO and AUTH first ! in F:\PHP\wamp\www\mail.php on line 8。以下是使用mail()函数发送邮件的php代码:

[php] view plain copy

span style="font-size:14px"?php

$to = "757006080@qq.com";

$subject = "Test mail";

$message = "Hello! This is a simple email message.";

$from = "757006080@qq.com";

$headers = "From: $from";

$send=mail($to,$subject,$message,$headers);

if($send)

echo "Mail Sent";

else

echo "Sorry,mail sent failed!"

?/span

在CSDN论坛上发现phpmailer可以方便快捷的发送邮件,以下写出详细使用教程:

1.需要下载PHPMailer文件包,(点击打开链接)

2.确认你的服务器已经系统支持socket,通过phpinfo()查看是否支持socket;

3.把文件解压到你的WEB服务器目录下,就可以使用PHPMailer发送邮件了。

以下为前台表单php代码:

[php] view plain copy

span style="font-size:14px"html

body

h3phpmailer Unit Test/h3

请你输入font color="#FF6666"收信/font的邮箱地址:

form name="phpmailer" action="testemail.php" method="post"

input type="hidden" name="submitted" value="1"/

邮箱地址: input type="text" size="50" name="to" /

br/

input type="submit" value="发送"/

/form

/body

/html /span

以下为后台程序:

[php] view plain copy

?php

/**

* Simple example script using PHPMailer with exceptions enabled

* @package phpmailer

* @version $Id$

*/

header("content-type:text/html;charset=utf-8");

ini_set("magic_quotes_runtime",0);

require('class.phpmailer.php');

try {

$mail = new PHPMailer(true); //New instance, with exceptions enabled

//$body = file_get_contents('contents.html');

//$body = preg_replace('/\\\\/','', $body); //Strip backslashes

$to = $_POST['to'];

$mail-CharSet="GB2312";//设置邮件字符编码否则邮件会乱码

$mail-Encoding="base64";

$mail-IsSMTP(); // tell the class to use SMTP

$mail-SMTPAuth = true; // enable SMTP authentication

$mail-Port = 25; // set the SMTP server port

$mail-Host = "smtp.qq.com"; // SMTP server

$mail-Username = "757006080@qq.com"; // SMTP server username

$mail-Password = "000000000000"; // SMTP server password

//$mail-IsSendmail(); // tell the class to use Sendmail

$mail-AddReplyTo("757006080@qq.com","han qing");

$mail-From = "757006080@qq.com";

$mail-FromName = "han qing";

//$to = "hanqing757@gmail.com";

$mail-AddAddress($to);

$mail-Subject =$mail-Subject = "=?utf-8?B?" . base64_encode("First PHPMailer Message") . "?=";

$mail-Body = "h1phpmailer演示/h1 这是用PHPMAILER发的第一份邮件,从QQ邮箱发到Google邮箱.";

$mail-AddAttachment("F:/myloe.jpg");

$mail-AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail-WordWrap = 80; // set word wrap

//$mail-MsgHTML($body);

$mail-IsHTML(true); // send as HTML

$mail-Send();

echo 'Message has been sent.';

} catch (phpmailerException $e) {

echo $e-errorMessage();

}

?

如何用php结合phpmailer发送邮件

先下载phpmailer,保存在你的网站目录,在发布的页面添加一个函数用来区分发送的主题

require_once('class.phpmailer.php');

require_once("class.smtp.php"); 

$mail  = new PHPMailer(); 

$mail-CharSet    ="UTF-8";                 //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8

$mail-IsSMTP();                            // 设定使用SMTP服务

$mail-SMTPAuth   = true;                   // 启用 SMTP 验证功能

$mail-SMTPSecure = "ssl";                  // SMTP 安全协议

$mail-Host       = "smtp.gmail.com";       // SMTP 服务器

$mail-Port       = 465;                    // SMTP服务器的端口号

$mail-Username   = "your_name@gmail.com";  // SMTP服务器用户名

$mail-Password   = "your_password";        // SMTP服务器密码

$mail-SetFrom('发件人地址', '发件人名称');    // 设置发件人地址和名称

$mail-AddReplyTo("邮件回复人地址","邮件回复人名称"); 

                                            // 设置邮件回复人地址和名称

$mail-Subject    = '';                     // 设置邮件标题

$mail-AltBody    = "为了查看该邮件,请切换到支持 HTML 的邮件客户端"; 

                                            // 可选项,向下兼容考虑

$mail-MsgHTML('');                         // 设置邮件内容

$mail-AddAddress('收件人地址', "收件人名称");

//$mail-AddAttachment("images/phpmailer.gif"); // 附件 

if(!$mail-Send()) {

    echo "发送失败:" . $mail-ErrorInfo;

} else {

    echo "恭喜,邮件发送成功!";

}