stmp发信php源码的简单介绍
本文目录一览:
- 1、如何使用php通过smtp发送邮件步骤
- 2、如何使用PHP通过SMTP发送电子邮件
- 3、php通过 smtp发送邮件问题
- 4、php smtp发送邮件
- 5、我有一个PHP发邮件的源码,但是发邮件时候不填标题跟内容也可以发送成功,我想在源码里添加一个判断提示
如何使用php通过smtp发送邮件步骤
其实用smtp协议发送邮件很简单,用框架或者原生都可以,我们需要用到class.phpmailer.php 和class.smtp.php,可以去网上下载。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
""
html xmlns="" xml:lang="en"
head
meta http-equiv="Content-Type" content="text/html;charset=UTF-8"
titleDocument/title
/head
body
form action="mail_send.php" method="post"
p收件人:input type="text" name="address" //p
p标 题:input type="text" name="title" //p
p内 容:textarea name="content" cols="50" rows="5"/textarea/p
p发件人:input type="text" name="user" //p
pinput type="submit" value="发送" //p
/form
/body
/html
写了一个mail_send.php然后引入一个封装的类
?php
// 接收值
isset($_POST['address'])?$address=$_POST['address']:$address='';
isset($_POST['titles'])?$titles=$_POST['titles']:$titles='';
isset($_POST['content'])?$content=$_POST['content']:$content='';
isset($_POST['user'])?$user=$_POST['user']:$user='';
//引入类
require 'Mail.class.php';
if( Mail::send($titles,$contents,$user,$address)){
echo "发送成功";
}else{
echo "发送失败".'br';
echo Mail::$error;
}
?
3、这里是我们封装好了一个类(Mail.class.php)上面引入的类
?php
header("content-type:text/html;charset=utf-8");
//引入原来的类文件
require 'class.phpmailer.php';
class Mail {
static public $error = '';
static public function send($title,$content,$user,$address){
$mail= new PHPMailer();
/*服务器相关信息*/
$mail-IsSMTP(); //设置使用SMTP服务器发送
$mail-SMTPAuth = true; //开启SMTP认证
$mail-Host = 'smtp.163.com'; //设置 SMTP 服务器,自己注册邮箱服务器地址 QQ则是ssl://smtp.qq.com
$mail-Username = 'zzy9i7'; //发信人的邮箱名称,本人网易邮箱 zzy9i7@163.com 这里就写
$mail-Password = '******'; //发信人的邮箱密码
/*内容信息*/
$mail-IsHTML(true); //指定邮件格式为:html *不加true默认为以text的方式进行解析
$mail-CharSet ="UTF-8"; //编码
$mail-From = 'zzy9i7@163.com'; //发件人完整的邮箱名称
$mail-FromName = $user; //发信人署名
$mail-Subject = $title; //信的标题
$mail-MsgHTML($content); //发信主体内容
//$mail-AddAttachment("15.jpg"); //附件
/*发送邮件*/
$mail-AddAddress($address); //收件人地址
//使用send函数进行发送
if($mail-Send()) {
return true;
} else {
self::$error=$mail-ErrorInfo;
return false;
}
}
}
?
如何使用PHP通过SMTP发送电子邮件
使用PHP类可以实现,例如:phpmailer,下面是示例代码
require("class.phpmailer.php"); //这个是一个smtp的php文档,网上可以下载得到
$mail = new PHPMailer(); //建立邮件发送类
$mail-CharSet = "UTF-8";
$address ="sdasdsadsa@qq.com";
$mail-IsSMTP(); // 使用SMTP方式发送
$mail-Host = "smtp.126.com"; // 您的企业邮局域名
$mail-SMTPAuth = true; // 启用SMTP验证功能
$mail-Username = "sffsdf@126.com"; // 邮局用户名(请填写完整的email地址)
$mail-Password = "123444"; // 邮局密码
$mail-Port=25;
$mail-From = "sffsdf@126.com"; //邮件发送者email地址
$mail-FromName = "在线Q聊";
$mail-AddAddress("$address", "a");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail-AddReplyTo("", "");
//$mail-AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
$mail-IsHTML(true); // set email format to HTML //是否使用HTML格式
$mail-Subject = "在线Q聊"; //邮件标题
$mail-Body = "在线Q聊网站欢迎访问"; //邮件内容,上面设置HTML,则可以是HTML
if(!$mail-Send())
{
echo "邮件发送失败. p";
echo "错误原因: " . $mail-ErrorInfo;
exit;
}
参见:
php通过 smtp发送邮件问题
程序中:$this-smtp_putcmd("", base64_encode($this-pass)
登陆密码base64后明文发送,认证方式为未加密方式,163的邮箱支持未加密的认证,其他邮箱就未必了,而且像google邮箱也不接受来自本localhost主机发送的邮件,只接受开放smtp服务的主机发送邮件。
以下这段程序是原来写的,探测smtp主机的,在$server数组中添加smtp主机就可以了,只有返回AUTH LOGIN PLAIN的才可以用你说的程序发送邮件:
?
set_time_limit( 0 );
$server = array(
"smtp.163.com",
"smtp.sina.com",
"smtp.google.com",
);
echo "pre style='font-size:12px;font-family:verdana'";
foreach ( $server as $key = $val) {
$fp = fsockopen( $val, 25, $errno, $errstr, 10 );
if ( $errno !==0 ) {
echo("Can not connect to $val .\r\n");
continue;
}
echo "\r\nfont color=red$val/font \r\n";
echo fread( $fp, 1024);
fputs( $fp, "EHLO localhost\r\n" );
echo fread( $fp, 1024 );
fclose( $fp );
php smtp发送邮件
哈哈 163 的邮箱 好像 得 07年之前注册的可以 要不就是 06年之前的 我忘了 我曾经弄过 哈哈
我有一个PHP发邮件的源码,但是发邮件时候不填标题跟内容也可以发送成功,我想在源码里添加一个判断提示
if($mailtitle==""){
echo 'script language="JavaScript";alert("发送失败!请填写完整信息。");location.href="index.html";/script;';
echo "a href='index.html'点此返回/a";
exit();
}
这可以判断你邮箱有没有填写