xampp连接ssl后,用php发邮件,显示成功,但邮箱中没看到邮件
2014-04-26 01:21
746 查看
PHP的mail() 邮件函数很简单,但也导致了不能使用目前流行的 带验证功能的 SMTP 服务器(gmail, 163, 126等)
现在通过配置 XAMPP 提供的 sendmail 来使得 PHP 的 mail() 函数可以正常发送邮件,下面以:smtp.126.com 为例:
1. 找到 xampp/php/php.ini 文件,找到 [mail function] 语句块,修改如下:
1 [mail function]
2 SMTP = smtp.126.com
3 smtp_port = 25
4 sendmail_from = xxx@126.com
5 sendmail_path = "\"你的xampp安装目录\xampp\sendmail\sendmail.exe\" -t" (!!这里眼神不好使,以为不用改,结果兜了超级久圈子都没解决,注意!)
2. 找到 xampp/sendmail/sendmail.ini 文件,修改如下:
1 [sendmail]
2 smtp_server = localhost
3 smtp_port = 25
4 default_domain = 126.com
5 auth_username = 你的邮箱@126.com
6 auth_password = 你的密码
7
8 force_sender = xxx@126.com
3. 配置 SSL 服务(可选)
因为gmail, 163, 126 等需要使用SSL来连接SMTP邮件服务器,而xampp里的sendmail程序不支持ssl连接。
如果你使用的是其它邮箱,且不需要SSL来连接SMTP,那把smtp.126.com改成对应的SMTP服务器地址就好了。
我们可以下载安装一个SSL代理软件,我们这里使用http://www.stunnel.org/
安装成功后,打开stunnel里面的stunnel.conf文件,找到下面的代码,修改如下:
这里我们增加了一个 [126-smtp] 节点:
1 ;[gmail-smtp]
2 ;client = yes
3 ;accept = 127.0.0.1:25
4 ;connect = smtp.gmail.com:465
5
6 [126-smtp]
7 client = yes
8 accept = 127.0.0.1:25
9 connect = smtp.126.com:465
4. 测试你的 PHP mail() 函数吧,呵呵!
01 <?php
02 $from_name = 'xxx';
03 $from_email = 'xxx@126.com';
04 $headers = 'From: $from_name <$from_email>';
05 $body = 'This is a test mail';
06 $subject = 'Test email from php mail()';
07 $to = 'xxx@xxx.com';
08 if (mail($to, $subject, $body, $headers)) {
09 echo "success!";
10 } else {
11 echo "fail…";
12 }
13 ?>
5. 你已经成功了!
--------------------------------------------------------------------------------
我配置的是163和qq的,qq用的是IMAP收(装个foxmail,在里面配置,qq邮箱里有教的,记得把SSL的勾上)
现在通过配置 XAMPP 提供的 sendmail 来使得 PHP 的 mail() 函数可以正常发送邮件,下面以:smtp.126.com 为例:
1. 找到 xampp/php/php.ini 文件,找到 [mail function] 语句块,修改如下:
1 [mail function]
2 SMTP = smtp.126.com
3 smtp_port = 25
4 sendmail_from = xxx@126.com
5 sendmail_path = "\"你的xampp安装目录\xampp\sendmail\sendmail.exe\" -t" (!!这里眼神不好使,以为不用改,结果兜了超级久圈子都没解决,注意!)
2. 找到 xampp/sendmail/sendmail.ini 文件,修改如下:
1 [sendmail]
2 smtp_server = localhost
3 smtp_port = 25
4 default_domain = 126.com
5 auth_username = 你的邮箱@126.com
6 auth_password = 你的密码
7
8 force_sender = xxx@126.com
3. 配置 SSL 服务(可选)
因为gmail, 163, 126 等需要使用SSL来连接SMTP邮件服务器,而xampp里的sendmail程序不支持ssl连接。
如果你使用的是其它邮箱,且不需要SSL来连接SMTP,那把smtp.126.com改成对应的SMTP服务器地址就好了。
我们可以下载安装一个SSL代理软件,我们这里使用http://www.stunnel.org/
安装成功后,打开stunnel里面的stunnel.conf文件,找到下面的代码,修改如下:
这里我们增加了一个 [126-smtp] 节点:
1 ;[gmail-smtp]
2 ;client = yes
3 ;accept = 127.0.0.1:25
4 ;connect = smtp.gmail.com:465
5
6 [126-smtp]
7 client = yes
8 accept = 127.0.0.1:25
9 connect = smtp.126.com:465
4. 测试你的 PHP mail() 函数吧,呵呵!
01 <?php
02 $from_name = 'xxx';
03 $from_email = 'xxx@126.com';
04 $headers = 'From: $from_name <$from_email>';
05 $body = 'This is a test mail';
06 $subject = 'Test email from php mail()';
07 $to = 'xxx@xxx.com';
08 if (mail($to, $subject, $body, $headers)) {
09 echo "success!";
10 } else {
11 echo "fail…";
12 }
13 ?>
5. 你已经成功了!
--------------------------------------------------------------------------------
我配置的是163和qq的,qq用的是IMAP收(装个foxmail,在里面配置,qq邮箱里有教的,记得把SSL的勾上)
相关文章推荐
- 已使用 163 邮箱测试通过,且支持 SSL 连接。 发送邮件
- C访问hadoop程序终端显示运行正确,因为连接参数错误,使得通过网页查看就是没有成功原因分析和解决方案
- 禁用邮箱后不显示在断开连接的邮箱
- zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】
- SQLServer 2012 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的操作过时。
- 大战 php 邮箱发送邮件
- php+mysql,php连接mysql,查询与分页显示
- PHP 5.3.8 成功连接 SQL Server 2005
- php 做注册邮件发送成功
- PHP中使用localhost连接Mysql不成功的解决方法 【转】
- 解决Jenkins邮箱配置中,使用SSL连接的问题
- php表单提交并发送邮件给某个邮箱(示例源码)
- PHPMailer发送邮件,出现无法连接host (Could not connect to SMTP host)
- PHP连接MySQL数据库,实现将数据库表中的信息显示在网页上
- 主流邮箱能正常显示的HTML邮件的技巧
- 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的操作过时)
- windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)
- 测试php与mysql的连接是否成功的多种方法
- dreamweaver + xampp + php + mysql 数据库连接发生http 405错误及“发生不知名错误”的解决办法
- 连接MYOB ODBC,在MyEclipse 下Commit成功,在Tomcat下单独运行,Commit显示Connection 已经关闭