PHP MAIL DEMO(程序代码直接发送邮件)
php代码
<?php // 收件人邮箱地址 $to = ‘[email protected]‘; // 邮件主题 $title = ‘测试邮件发送‘; // 邮件内容 $msg = ‘这是一封测试邮件‘; // 发件人邮箱(虚拟的,本身发送的时候并不是用这个邮箱) $from = ‘From: [email protected]‘; $flag = mail($to, $title, $msg, $from); // 打印结果,如果不加var_dump会有空值转换,即null转成‘’ echo var_dump($flag); ?>
http://www.w3school.com.cn/php/php_ref_mail.asp
在w3cschool里面对这块有些介绍,但没办法直接用,有问题。
淡蓝这里只介绍xampp集成安装的情况,其实都是一样的,自己再去下载一个sendmail也可以,这边xampp已经下载好了
修改一下配置,一共2个配置文件。
在xampp安装目录下
php/php.ini
[mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury SMTP = smtp.163.com smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = 13514087953@163.com ; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesF:\xampp) fakemail and mailtodisk do not work correctly. ; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path. ; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder) sendmail_path ="F:\xampp\sendmail\sendmail.exe -t" ; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the F:\xampp\mailoutput folder ;sendmail_path="F:\xampp\mailtodisk\mailtodisk.exe" ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header=Off ; Log all mail() calls including the full path of the script, line #, to address and headers ;mail.log = "F:\xampp\php\logs\php_mail.log"
主要改这三个配置,这边淡蓝用的是163的smtp服务器,sendmail_path 等于指定一个用来发送邮件的客户端,这里xampp集成了sendmail,也在安装目录下
;用来发邮件的插件 sendmail_path ="F:\xampp\sendmail\sendmail.exe -t"
然后修改sendmail目录下的sendmail.ini
[sendmail] ; you must change mail.mydomain.com to your smtp server, ; or to IIS‘s "pickup" directory. (generally C:\Inetpub\mailroot\Pickup) ; emails delivered via IIS‘s pickup directory cause sendmail to ; run quicker, but you won‘t get error messages back to the calling ; application. smtp_server=smtp.163.com ; smtp port (normally 25) smtp_port=25 ; SMTPS (SSL) support ; auto = use SSL for port 465, otherwise try to use TLS ; ssl = alway use SSL ; tls = always use TLS ; none = never try to use SSL smtp_ssl=auto ; the default domain for this server will be read from the registry ; this will be appended to email addresses when one isn‘t provided ; if you want to override the value in the registry, uncomment and modify ;default_domain=mydomain.com ; log smtp errors to error.log (defaults to same directory as sendmail.exe) ; uncomment to enable logging error_logfile=error.log debug_logfile=debug.log ; create debug log as debug.log (defaults to same directory as sendmail.exe) ; uncomment to enable debugging ;debug_logfile=debug.log ; if your smtp server requires authentication, modify the following two lines auth_username=13514087953 auth_password=224119 ; if your smtp server uses pop3 before smtp authentication, modify the ; following three lines. do not enable unless it is required. pop3_server= pop3_username= pop3_password= ; force the sender to always be the following email address ; this will only affect the "MAIL FROM" command, it won‘t modify ; the "From: " header of the message content force_sender=13514087953@163.com ; force the sender to always be the following email address ; this will only affect the "RCTP TO" command, it won‘t modify ; the "To: " header of the message content force_recipient= ; sendmail will use your hostname and your default_domain in the ehlo/helo ; smtp greeting. you can manually set the ehlo/helo name if required hostname=
主要修改(其实有些重复的在php.inf文件中就可以不用设置也可以)
;smtp服务器 smtp_server=smtp.163.com ;端口 smtp_port=25 ;发件人邮箱名 auth_username=13514087953 ;密码 auth_password=224119 ;发件人邮箱地址 force_sender=[email protected]
用开头的php代码测试一下即可,可以直接在ide中运行
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。