纯代码为wordpress添加stmp邮件服务

很多用户在使用wordpress搭建网站时会发现不能发送邮件,为什么呢,因为服务器都支持mail函数的,如何解决这个问题呢,很多人第一时间会选择插件,就我个人而言,不怎么喜欢使用插件,我喜欢用代码来解决,这个教大家如何给网站添加stmp邮件服务。
方法一,直接在wordpress主题目录functions.php文件中添加下面代码

  1. add_action('phpmailer_init', 'mail_smtp');  
  2. function mail_smtp( $phpmailer ) {  
  3. $phpmailer->FromName = '信息库'; //发件人  
  4. $phpmailer->Host = 'smtp.ym.163.com'; //修改为你使用的SMTP服务器  
  5. $phpmailer->Port = 465; //SMTP端口,开启了SSL加密  
  6. $phpmailer->Username = 'admin@xxko.net'; //邮箱账户   
  7. $phpmailer->Password = '*******'; //输入你对应的邮箱密码,这里使用了*代替  
  8. $phpmailer->From = 'admin@xxko.net'; //你的邮箱   
  9. $phpmailer->SMTPAuth = true;   
  10. $phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25留空,465为ssl)  
  11. $phpmailer->IsSMTP();  
  12. }  

注:上面代码中,替换成自己的邮件地址和密码。

方法二,将stmp服务集成到你的主题选项中,首先在functions.php文件中添加下面代码
[reply]

  1. //使用smtp发送邮件  
  2. if (hl_get_option('mailsmtp_b')){  
  3. //SMTP邮箱设置  
  4. function googlo_mail_smtp($phpmailer) {  
  5.     $phpmailer->From = '' . hl_get_option('maildizhi_b') . ''//发件人地址  
  6.     $phpmailer->FromName = '' . hl_get_option('mailnichen_b') . ''//发件人昵称  
  7.     $phpmailer->Host = '' . hl_get_option('mailsmtp_b') . ''//SMTP服务器地址  
  8.     $phpmailer->Port = '' . hl_get_option('mailport_b') . ''//SMTP邮件发送端口  
  9.     if (get_option('smtpssl_b')) {  
  10.     $phpmailer->SMTPSecure = 'ssl';  
  11.     }else{  
  12.     $phpmailer->SMTPSecure = '';  
  13.     }//SMTP加密方式(SSL/TLS)没有为空即可  
  14.     $phpmailer->Username = '' . hl_get_option('mailuser_b') . ''//邮箱帐号  
  15.     $phpmailer->Password = '' . hl_get_option('mailpass_b') . ''//邮箱密码  
  16.     $phpmailer->IsSMTP();  
  17.     $phpmailer->SMTPAuth = true; //启用SMTPAuth服务  
  18. }  
  19.     add_action('phpmailer_init', 'googlo_mail_smtp');  
  20. }  

然后在主题选项中合适的位置添加

  1. // STMP邮箱  
  2. $options[] = array(  
  3.     'name' => 'STMP邮箱',  
  4.     'type' => 'heading'  
  5. );  
  6. $options[] = array(  
  7.     'name' => '',  
  8.     'desc' => '请输入您的邮箱地址',  
  9.     'id' => 'maildizhi_b',  
  10.     'std' => '发件人地址',  
  11.     'type' => 'text'  
  12. );   
  13.   
  14. $options[] = array(  
  15.     'name' => '',  
  16.     'desc' => '请输入您的网站名称',  
  17.     'id' => 'mailnichen_b',  
  18.     'std' => '发件人昵称',  
  19.     'type' => 'text'  
  20. );   
  21.   
  22. $options[] = array(  
  23.     'name' => '',  
  24.     'desc' => '请输入您的邮箱的SMTP服务器',  
  25.     'id' => 'mailsmtp_b',  
  26.     'std' => 'smtp.ym.163.com',  
  27.     'type' => 'text'  
  28. );      
  29.      
  30.     $options[] = array(  
  31.        'name'  => 'SSL安全连接',  
  32.          
  33.        'desc'  => '如果你不知道这个是做什么的,请不要动',  
  34.          
  35.        'id'    => 'smtpssl_b',  
  36.          
  37.        'std' => '1',  
  38.          
  39.        'type'  => 'checkbox',  
  40. );  
  41. $options[] = array(  
  42.     'name' => '',  
  43.     'desc' => '请输入您的smtp端口,一般QQ邮箱25就可以了',  
  44.     'id' => 'mailport_b',  
  45.     'std' => '25',  
  46.     'type' => 'text'  
  47. );  
  48.      
  49. $options[] = array(  
  50.     'name' => '',  
  51.     'desc' => '请输入您的邮箱地址',  
  52.     'id' => 'mailuser_b',  
  53.     'std' => '邮箱账号',  
  54.     'type' => 'text'  
  55. );  
  56. $options[] = array(  
  57.     'name' => '',  
  58.     'desc' => '请输入您的邮箱密码',  
  59.     'id' => 'mailpass_b',  
  60.     'std' => '邮箱密码',  
  61.     'type' => 'password'  
  62. );  

[/reply]
大功告成。
注,上面代码是用在options-framework,其它后台文件大同小异,区别不大。