免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 22643 | 回复: 14
打印 上一主题 下一主题

[Mail] nginx邮件代理功能的代码及nginx配置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-27 11:04 |只看该作者 |倒序浏览
简单测试nginx邮件代理功能

认证代码
auth.php
  1. <?php
  2. if (!isset($_SERVER["HTTP_AUTH_USER"] ) || !isset($_SERVER["HTTP_AUTH_PASS"] )){
  3.   fail();
  4. }
  5. $username=$_SERVER["HTTP_AUTH_USER"] ;
  6. $userpass=$_SERVER["HTTP_AUTH_PASS"] ;
  7. $protocol=$_SERVER["HTTP_AUTH_PROTOCOL"] ;
  8. // default backend port
  9. $backend_port=110;
  10. if ($protocol=="imap") {
  11.   $backend_port=143;
  12. }
  13. if ($protocol=="smtp") {
  14.   $backend_port=25;
  15. }

  16. if($username == "jacky@thismail.org"){
  17.         $server_ip = "202.0.0.5";
  18. }else{
  19.         exit;
  20. }

  21. pass($server_ip, $backend_port);

  22. //END


  23. function authuser($user,$pass){
  24.   return true;
  25. }



  26. function fail(){
  27.   header("Auth-Status: Invalid login or password");
  28.   exit;
  29. }

  30. function pass($server,$port){
  31.   header("Auth-Status: OK");
  32.   header("Auth-Server: $server");
  33.   header("Auth-Port: $port");
  34.   exit;
  35. }

  36. ?>
复制代码
配置nginx
nginx.conf
  1. #user  nobody;
  2. worker_processes  1;

  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;

  6. #pid        logs/nginx.pid;

  7. events {
  8.     worker_connections  1024;
  9. }

  10. http {
  11.     include       mime.types;
  12.     default_type  application/octet-stream;

  13.     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  14.     #                  '"$status" $body_bytes_sent "$http_referer" '
  15.     #                  '"$http_user_agent" "$http_x_forwarded_for"';

  16.     #access_log  logs/access.log  main;

  17.     client_max_body_size  25m;

  18.     client_header_timeout  3m;
  19.     client_body_timeout    3m;
  20.     send_timeout           3m;

  21.     client_header_buffer_size 32k;
  22.     large_client_header_buffers 1 128k;

  23.     fastcgi_connect_timeout 300;
  24.     fastcgi_send_timeout 300;
  25.     fastcgi_read_timeout 300;
  26.     fastcgi_buffer_size 512k;
  27.     fastcgi_buffers 4 1024k;#8 128
  28.     fastcgi_busy_buffers_size 1024k;
  29.     fastcgi_temp_file_write_size 1024k;
  30.     fastcgi_intercept_errors on;

  31.     server_names_hash_bucket_size 128;
  32.     server_names_hash_max_size 4096;

  33.         ssi on;
  34.     ssi_silent_errors on;
  35.     ssi_types text/shtml;

  36.     gzip  on;
  37.     gzip_min_length  1000;
  38.     gzip_buffers     4 8k;
  39.     gzip_types       text/* text/css application/javascript application/x-javascript;
  40.     gzip_comp_level  9;
  41.     gzip_proxied     any;
  42.     gzip_vary        on;
  43.     gzip_http_version 1.0;
  44.     output_buffers   4 32k;
  45.     postpone_output  1460;

  46.     sendfile         on;
  47.     tcp_nopush       on;
  48.     tcp_nodelay      on;

  49.     keepalive_timeout  75 20;

  50.     server_name_in_redirect off;


  51. #Mail Proxy
  52. mail {
  53.           auth_http  mail.postfix.cn:80/auth.php;
  54.           pop3_capabilities  "TOP"  "USER";
  55.           imap_capabilities  "IMAP4rev1"  "UIDPLUS";

  56.          #POP3 Auth
  57.           server {
  58.             listen     110;
  59.             protocol   pop3;
  60.             proxy      on;
  61.           }

  62.          #IMAP Auth
  63.           server {
  64.             listen     143;
  65.             protocol   imap;
  66.             proxy      on;
  67.           }

  68.          #SMTP Auth
  69.           server {
  70.               listen 25;
  71.               protocol smtp;
  72.               proxy on;
  73.               xclient off;
  74.               smtp_auth login plain;
  75.   }
  76. }
复制代码

[ 本帖最后由 scyzxp 于 2009-11-27 11:05 编辑 ]

评分

参与人数 1可用积分 +3 收起 理由
ruochen + 3 精品文章

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2009-11-27 13:30 |只看该作者
这个是什么意思?看的不太明白,但先顶老大了!

论坛徽章:
0
3 [报告]
发表于 2009-11-27 14:33 |只看该作者

回复 #2 binmouse 的帖子

你仔细看看吧。或许对你做大型邮件系统有一点点帮助呢?

论坛徽章:
0
4 [报告]
发表于 2009-11-27 16:03 |只看该作者
佩服佩服。

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
5 [报告]
发表于 2009-12-04 17:54 |只看该作者
做这个认证的配置是否需要安装其他软件?
比如php或者web服务器?
谢谢。

论坛徽章:
0
6 [报告]
发表于 2009-12-04 22:00 |只看该作者

回复 #5 VIP_fuck 的帖子

nginx本身就是web。

论坛徽章:
1
寅虎
日期:2015-01-23 02:35:47
7 [报告]
发表于 2009-12-06 23:59 |只看该作者
俺有个疑问,如果smtp发信,想把auth login的认证信息直接丢给后端的系统直接认证的话,该如何配置?有点类似透传的性质的那种

论坛徽章:
0
8 [报告]
发表于 2009-12-07 10:52 |只看该作者

回复 #7 cuci 的帖子

改下auth.php那里不做任何认证即可。

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
9 [报告]
发表于 2009-12-07 17:17 |只看该作者
斑竹,能不能给个运行的截图啊,看看运行是个什么效果。

我是小白,还很想用这个东西做邮件代理。

不知道那个php是干啥的,也不知道要想能运行这个东西要不要安装别的软件。

斑竹大人救命...

论坛徽章:
0
10 [报告]
发表于 2009-12-07 17:54 |只看该作者

回复 #9 VIP_fuck 的帖子

php是起到告诉那个用户在后台那个机器上,也可以做为认证的功能。但代码要重写。我这个只是简单的说明了原理。如果实际使用还要改进认证的代码和效率。

这个东西没有截图。也不好截图。

这个东西做邮件集群很有帮助的。原理就这样的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP