分享

发送邮件

 小马哥技术屋 2017-01-17
发送邮件:
1 php中发送邮件的方式:
2 mail函数的使用
3 socket方式发送原理
4 学会使用一个发送邮件的类

php发送邮件的方式:
1 通过mail()函数发送邮件:
   mail() 配置php.ini 邮件信息
   需要类似sendmail这样的组件支持
2  通过socket通讯,使用SMTP传输:
    socket连接  -> SMTP通讯  ->获取通讯消息  ->  发送

mail()函数允许您从脚本中直接发送电子邮件
如果邮件的投递被成功的接受,则返回true,否则返回false
mail(to,subjetc,message,headers,parameters)
to:必须  规定邮件的接收者
subject 必须   规定邮件的主题  该参数不包含任何换行字符
headers 可选:规定额外的报头   比如:from cc以及bs
parameters可选   规定sendmail程序的额外参数

使用fsockopen函数打开一个internet连接
fsockopen(string hostname,int port,int[errno],string[errstr],int[])
这里由于要使用gSMTP协议,所以端口号25,在打开连接成功后,会返回一个socket句柄,使用它就可以使用文件句柄一样的,可使用的操作有fputs()  fgets()  feof() fclose()

220 服务器就绪(在socket连接成功时,会返回此信息)
221 正在处理
250 请求邮件动作正确
354 开始发送数据 命令不能识别
500 语法错误,命令不能识别
550 命令不能执行,邮箱无效
552 中断处理,用户超出文件空间

mail("mail@php100.com","邮件标题","邮件内容");
此时也许会报错,因为这里没有连接smtp。打开php.ini文件
搜索smtp:SMTP = locahost   smtp_port=25    sendmail_from=master@php100.com


if(mail("main@php.com","邮件标题:","邮件内容")){
    echo "支持mail"
}else{
    echo "不支持mail"
}

使用socket发送邮件:
引入发送邮件类:
$sttpserver = "smtp.163.com";
$smtpserverport = 25;//smtp服务器端口
$smtpusermail = "info@163.com";//发送给谁
$smtpuser = "info";//SMTP服务器的用户账号
$smtppass = $pw;//smtp服务器的用户密码
$mailsubject = "主题";
$mailbody = "内容";
$mailtype = "html";
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里main的一个true是表示使用身份验证,否则不适用身份验证
$smtp->debug= true;//是否显示发送的调试信息
$smtp->sendmail()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多