如果要使用php发送邮件,则可以使用PHP 内置的mail() 函数,但是mail()函数需要有服务器支持 必须有自己的邮件服务器,如果使用stmp服务来发送邮件的话相当于代替别人发送,而不是从自己服务器发送,所以不适合。(李昌辉)
再有就是mail()函数本身的特点,mail() 函数功能并不完善,只能发送文本的 e-mail,使用 mail() 函数发送的邮件没有进行身份验证,很多邮件收不到使用 mail() 函数发送的邮件或者发送的邮件直接进入垃圾邮箱。
如果想要在自己的php程序中使用已经有的邮箱账号(例如126邮箱账号)来发送邮件的话,可以使用PHPMailer类来实现。
本人测试使用的是126邮箱账号,使用126的stmp服务进行发送邮件,具体步骤如下:
1.登录自己的邮箱,在设置里面开启POP3/SMTP服务。
在开启该服务的时候,需要设置授权码,该授权码就是将来使用smtp服务的密码。
2.下载PHPMailer,新建测试文件,在文件里面引入PHPMailer文件夹下的class.phpmailer.php。
include("./PHPMailer/class.phpmailer.php");
3.在该页面造PHPMailer对象写入以下代码,其中***部分是根据自身情况填写的。
$mail = new PHPMailer(); $mail->isSMTP(); // 启用SMTP //$mail->SMTPDebug=1; //开启调试模式 //$mail->SMTPSecure = "ssl"; $mail->CharSet='utf-8'; //设置邮件编码格式 $mail->Host="smtp.126.com;"; //smtp服务器的名称(这里以126邮箱为例) $mail->SMTPAuth = true; //启用smtp认证 $mail->Username = "*****"; //你的邮箱名可以不写@后缀,也可以写 $mail->Password = "*****" ; //邮箱密码,现在开启邮箱SMTP后叫做安全码 $mail->Port=25; //SMTP端口号 //$mail->Port = 994; $mail->setFrom("****@126.com","alvin"); //发件人地址(也就是你的邮箱地址)和发件人名称 $mail->AddAddress("****@qq.com",""); //接收人地址和名称 $mail->WordWrap = 100; //设置每行字符长度 $mail->isHTML(true); // 是否HTML格式邮件 $mail->Subject ="你好这是测试的"; //邮件主题 $mail->Body = "给你发送个信息"; //邮件内容 //$mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示 var_dump($mail->Send()); //发送方法,发送成功返回true,失败返回false //echo $mail->ErrorInfo; //获取错误信息
4.填写好相应的数据,运行该页面,即可发送成功