分类
服务器日志

为树莓派服务器设置Gmail SMTP发送邮件

如果希望你的树莓派服务器能够发送邮件, 我们需要一些设置。发送邮件对wordpress特别重要, 例如当有人评论时, wp会发邮件通知。 更为重要的是, 新注册用户的密码是通过邮件发送的。wordpress的邮件依赖于系统的mail函数, 当没有邮件客户端时, 在发送邮件时会提示可能原因:您的主机禁用了 mail() 函数

树莓派的raspbian系统是基于debian的, 从而邮件服务器也是有很多选择, 例如重量级的postfix,senmail等,轻量级的ssmtp,msmtp等。 这里我将介绍如何用msmtp通过gmail代理发送邮件。

  1. 安装msmtp以及必要的依赖包:sudo apt-get install openssl ca-certificates msmtp
  2. 配置msmtp12: sudo vim /etc/msmtprc
    defaults
    tls on
    tls_starttls on
    tls_trust_file /etc/ssl/certs/ca-certificates.crt
    account default
    host smtp.gmail.com
    port 587
    auth on
    user [email protected]
    password your_password_yourgmail
    from [email protected]
    logfile /var/log/msmtp.log
    

    这里需要自己填写user.password,from(邮件显示的发件人)

  3. 由于这个文件包含有明文密码, 我们需要修改其权限:sudo chmod 0644 /etc/msmtprc
  4. 至此, 你可以测试是否配置成功:echo -e "Subject: Test MailrnrnThis is a test mail" |msmtp --debug --from=default -t [email protected] 当然这里username要换成你自己的gmail用户名, 随便写是发生不成功的。
  5. 我们还需要配置php.ini使得php能够用msmtp发生邮件:sudo vim /etc/php5/fpm/php.ini 这个php.ini 的路径可以通过sudo find / -name php.ini来获得。 修改php.inisendmail_path(在956行)为sendmail_path = '/usr/bin/msmtp -t', 这里msmtp的path可以通过which msmtp获得。
  6. 重启php5-fpm: sudo service php5-fpm restart使配置生效
  7. 测试php的mail函数是否工作, 在网站根目录下新建mail.php, 内容为3
    < ?php
    if ( mail ( '[email protected]', 'Test mail from localhost', 'Working Fine.' ) ){
      echo 'Mail sent';
    }else{
      echo 'Error. Please check error log.';
    }
    ?>
    

    同样请填写正确的用户名。然后保存, 并用浏览器访问`http://yoursiteurl/mail.php`如果看到Mail sent则表示发送成功。
    至此, 你应该已经设置好邮件服务器了。 是不是很简单?

参考文献

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据