当前位置:首页 > 代码 > 正文

php发送qq邮件代码(php邮件发送源码)

admin 发布:2022-12-19 12:48 120


今天给各位分享php发送qq邮件代码的知识,其中也会对php邮件发送源码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

我想用PHP写个表单直接发送到 QQ邮箱,最好网站不登陆也能发的。最好能写出具体的代码

?

/*

* 邮件发送类

*/

class smail {

//您的SMTP 服务器供应商,可以是域名或IP地址

var $smtp = "";

//SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证,如不清楚请与你的smtp 服务商联系。

var $check = 1;

//您的email帐号名称

var $username = "";

//您的email密码

var $password = "";

//此email 必需是发信服务器上的email

var $s_from = "";

/*

* 功能:发信初始化设置

* $from 你的发信服务器上的邮箱

* $password 你的邮箱密码

* $smtp 您的SMTP 服务器供应商,可以是域名或IP地址

* $check SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证

*/

function smail ( $from, $password, $smtp, $check = 1 ) {

if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {

$this-username = substr( $from, 0, strpos( $from , "@" ) );

$this-password = $password;

$this-smtp = $smtp ? $smtp : $this-smtp;

$this-check = $check;

$this-s_from = $from;

}

}

/*

* 功能:发送邮件

* $to 目标邮箱

* $from 来源邮箱

* $subject 邮件标题

* $message 邮件内容

*/

function send ( $to, $from, $subject, $message ) {

//连接服务器

$fp = fsockopen ( $this-smtp, 25, $errno, $errstr, 60);

if (!$fp ) return "联接服务器失败".__LINE__;

set_socket_blocking($fp, true );

$lastmessage=fgets($fp,512);

if ( substr($lastmessage,0,3) != 220 ) return "错误信息1:$lastmessage".__LINE__;

//HELO

$yourname = "YOURNAME";

if($this-check == "1") $lastact="EHLO ".$yourname."\r\n";

else $lastact="HELO ".$yourname."\r\n";

fputs($fp, $lastact);

$lastmessage == fgets($fp,512);

if (substr($lastmessage,0,3) != 220 ) return "错误信息2:$lastmessage".__LINE__;

while (true) {

$lastmessage = fgets($fp,512);

if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )

break;

}

//身份验证

if ($this-check=="1") {

//验证开始

$lastact="AUTH LOGIN"."\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 334) return "错误信息3:$lastmessage".__LINE__;

//用户姓名

$lastact=base64_encode($this-username)."\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 334) return "错误信息4:$lastmessage".__LINE__;

//用户密码

$lastact=base64_encode($this-password)."\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != "235") return "错误信息5:$lastmessage".__LINE__;

}

//FROM:

$lastact="MAIL FROM: ". $this-s_from . "\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 250) return "错误信息6:$lastmessage".__LINE__;

//TO:

$lastact="RCPT TO: ". $to ." \r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 250) return "错误信息7:$lastmessage".__LINE__;

//DATA

$lastact="DATA\r\n";

fputs($fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 354) return "错误信息8:$lastmessage".__LINE__;

//处理Subject头

$head="Subject: $subject\r\n";

$message = $head."\r\n".$message;

//处理From头

$head="From: $from\r\n";

$message = $head.$message;

//处理To头

$head="To: $to\r\n";

$message = $head.$message;

//加上结束串

$message .= "\r\n.\r\n";

//发送信息

fputs($fp, $message);

$lastact="QUIT\r\n";

fputs($fp,$lastace);

fclose($fp);

return 0;

}

}

/*发送示例

$sm = new smail( "用户名@163.com", "密码", "smtp.163.com" );

$end = $sm-send( "目标邮箱", "来源邮箱", "这是标题", "这是邮件内容" );

if( $end ) echo $end;

else echo "发送成功!";

*/

?

怎么利用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();

}

?

如何使用thinkphp发送邮件

Thinkphp3.2 PHPMailer 发送邮件结合QQ企业邮箱发送邮件

下载附件PHPMailer解压到ThinkPHP\Library\Vendor

在Common文件夹新建function.php

/**

 * 邮件发送函数

 */

    function sendMail($to, $title, $content) {

     

        Vendor('PHPMailer.PHPMailerAutoload');     

        $mail = new PHPMailer(); //实例化

        $mail-IsSMTP(); // 启用SMTP

        $mail-Host=C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)

        $mail-SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证

        $mail-Username = C('MAIL_USERNAME'); //你的邮箱名

        $mail-Password = C('MAIL_PASSWORD') ; //邮箱密码

        $mail-From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)

        $mail-FromName = C('MAIL_FROMNAME'); //发件人姓名

        $mail-AddAddress($to,"尊敬的客户");

        $mail-WordWrap = 50; //设置每行字符长度

        $mail-IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件

        $mail-CharSet=C('MAIL_CHARSET'); //设置邮件编码

        $mail-Subject =$title; //邮件主题

        $mail-Body = $content; //邮件内容

        $mail-AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示

        return($mail-Send());

    }

添加配置文件config.php

// 配置邮件发送服务器

    'MAIL_HOST' ='smtp.exmail.qq.com',//smtp服务器的名称

    'MAIL_SMTPAUTH' =TRUE, //启用smtp认证

    'MAIL_USERNAME' ='jufengjituan@gsjfjt.com',//你的邮箱名

    'MAIL_FROM' ='jufengjituan@gsjfjt.com',//发件人地址

    'MAIL_FROMNAME'='聚丰集团',//发件人姓名

    'MAIL_PASSWORD' ='******',//邮箱密码

    'MAIL_CHARSET' ='utf-8',//设置邮件编码

    'MAIL_ISHTML' =TRUE, // 是否HTML格式邮件

最后就是使用PHPMailer发送邮件

form action="__URL__/add" method="post" enctype="multipart/form-data"

    邮箱:input  type="text" id="mail" name="mail"/

    标题:input  type="text" id="title" name="title"/

    内容input  type="text" id="content" name="content"/

    input class="button" type="submit" value="发送" style="margin: 0 auto;display: block;"/

/form

public function add(){    

            if(SendMail($_POST['mail'],$_POST['title'],$_POST['content']))

                $this-success('发送成功!');

            else

                $this-error('发送失败');

}

PHP中发送邮件的代码!

从代码来看,想必楼主是想把表单提交的内容发送至指定邮箱,而这个邮箱地址也是在表单中填写的,$sendTo变量的值被赋为表单项“toMail”传过来的值。

如此,你可以在填写表单的时候在toMail表单项里填入“88888@qq.com”,或者直接$sendTo="88888@qq.com"。

接下来就要考虑是否能发送出去了:

1、如果楼主配置的服务器安装了sendmail组件,就可以直接使用你写的这段代码来完成任务。

2、如果没有安装sendmail组件,就要接用smtp服务器来发送了。这样相对较复杂,要引用一个PHP类。具体代码如下:

SMTP.PHP:

?php

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");

}

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;

}

}

}

?

DEMO:TEST.PHP

?php

require "smtp.php";

$smtpserver = "smtp.xxx.com";//SMTP服务器

$smtpserverport =25;//SMTP服务器端口

$smtpusermail = "xxxx@xxx.com";//SMTP服务器的用户邮箱

$smtpemailto = "xxxx@xxx.com";//发送给谁

$smtpuser = "xxxx";//SMTP服务器的用户帐号

$smtppass = "xxxx";//SMTP服务器的用户密码

$mailsubject = "客户反馈意见!";//邮件主题

$mailbody = "h1这是我的一个测试~~~/h1";//邮件内容

$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件

$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.

$smtp-debug = false;//是否显示发送的调试信息

$return = ($smtp-sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype));

echo $return;

?

如何用php结合phpmailer发送邮件

?php 

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

ini_set("magic_quotes_runtime",0); 

require 'php_mail/class.phpmailer.php'; 

require 'php_mail/class.smtp.php'; 

function send_mail($to,$fromname,$title,$content){ 

try { 

$mail = new PHPMailer(true); 

$mail-IsSMTP(); 

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

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

$mail-Port = 25; //端口请保持默认

$mail-Host = "smtp.163.com"; //使用QQ邮箱发送

$mail-Username = "xxxxxxxxxx@163.com"; //这个可以替换成自己的邮箱

$mail-Password = "xxxxxxxxxxxxxxx"; //注意 这里是写smtp的授权码 写的不是QQ密码,此授权码不可用

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

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

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

$mail-FromName = $fromname; 

$to = $to; 

$mail-AddAddress($to); 

$mail-Subject = $title; 

$mail-Body = $content;

$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(); 

return true;

}

$neirong="联系电话:".$_POST['phone']."br /".$_POST['content']."hrp style='float:right;'邮件来自官网/p";

send_mail('654080169@qq.com',$_POST['fromname'],'来信了ヾ(≧O≦)〃嗷~',$neirong);

// send_mail('1486064793@qq.com',$_POST['fromname'],'可爱的保氧家官网来信了ヾ(≧O≦)〃嗷~',$neirong);

//环境 PHP5.3亲测可用

?

下载邮件类,结合这个就可以了

php发送qq邮件代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php邮件发送源码、php发送qq邮件代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/8348.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载