linux下发送邮件过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下发送邮件过程相关的知识,希望对你有一定的参考价值。

简明扼要的写下过程就好了

1 组建两台邮件服务器A与B与一台DNS,其中
A 192.168.100.102/24 有域名mail.rhce.com
B 192.168.100.101/24 有域名mail.example.com
DNS 192.168.100.98则A上有如下配置
/etc/mail/local-host-names 用于定义收发邮件的主机别名
# local-host-names - include all aliases for your machine here.
rhce.com #注:不可少,否则收不到邮件,虽然可以发
mail.rhce.com #注:可不要/etc/mail/access #该文件用于限制哪些客户端可以使用此邮件服务器来转发邮件 (也可全不配,默认即是转发的)
rhce.com RELAY
example.com RELAY
192.168.100. RELAY
192.168.10. REJECT #设置拒绝转发192.168.10网段的邮件注:可以设置的选项还有 OK/REJECT/DISCARD/ERROR:550
B上有如下配置
/etc/mail/local-host-names (也可不配)
# local-host-names - include all aliases for your machine here.
example.com
mail.example.com/etc/mail/access
rhce.com RELAY
example.com RELAY
192.168.100. RELAY A和B均打开sendmail/dovecot服务 注:只有使用了dovecot才能使用Foxmail/OutLokk等通过POP3/IMAP协议接受邮件改/etc/mail/sendmail.cf 设置
O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA
service sendmail restart 注:要在0.0.0.0上监听
service dovecot restart 注:此时查看是否打开了110/143端口,实际上还打开了993(IMAP-SSL)/995(POP3-SSL)端口;
双方分别设置192.168.100.98为dns的IP
此外双方均要用makemap hash access.db<access 生成访问许可库文件
另外双方的hostname与/etc/sysconfig/network中的域名均要设为相应的域名DNS中的设置如下
如果DNS服务器也作为网关的话,DNS首先要打开ip转发功能;
named.confoptions
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
;
include "/etc/rndc.key";zone "."
type hint;
file "named.ca";
;zone "example.com"
type master;
file "example.com.zone";
allow-transfer
192.168.1.177;
192.168.7.17;
;
;
zone "rhce.com"
type master;
file "rhce.com.zone";
allow-transfer
192.168.1.177;
192.168.7.17;
;
;example.com.zone$ttl 38400
example.com. IN SOA dns.example.com. admin.example.com. (
2005090503 ;Serial
10800 ;Refresh
3600 ;Retry
604800 ;Expire
38400 ) ;Negative Cache TTL
example.com. IN NS dns.example.com.
rhel4 IN CNAME dns
bbs IN CNAME www
samba IN CNAME www
example.com. IN MX 5 mail
mail IN A 192.168.100.101
rhce.com.zone$ttl 38400
rhce.com. IN SOA dns.rhce.com. admin.rhce.com. (
2005090503 ;Serial
10800 ;Refresh
3600 ;Retry
604800 ;Expire
38400 ) ;Negative Cache TTL
rhce.com. IN NS dns.rhce.com.
www.rhce.com. IN A 192.168.100.29
rhel4 IN CNAME dns
bbs IN CNAME www
samba IN CNAME www
rhce.com. IN MX 5 mail
mail IN A 192.168.100.102注:linux默认是不让用户用root用户登录邮箱的,可以换为alading或其它用户;
可以用 host -t mx example.com可以查询出example.com的MX记录 设置POP3S和IMAPS服务器都必须生成相应的密钥和证书; pop3端口110,imap端口143,pop3s端口995,imaps端口993;
服务器使用私钥加密邮件,客户端收邮件时,使用证书中的公钥对邮件进行解密,才能够正常读邮件;
制作私钥和自签名证书
cd /etc/pki/tls/certs/
make dovecot.pem #该文件保存邮件服务器的私钥和公钥信息;
vi /etc/dovecot.conf

ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
改为
ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
ssl_key_file = /etc/pki/tls/certs/dovecot.pem
service dovecot restart关于Foxmail的使用
1 默认情况下不可以登录到root的邮箱,但可以用于发送
2 如果普通用户不能登录到邮箱,用passwd 设置密码后,再打开foxmail的邮箱账户设置,设置邮件服务器里头的高级设置,点中SMTP与POP3的SSL连接再试试;TLS Transport Layer Security
PKI Public Key Infrastructure
参考技术A 楼上的 你搞错了吧 人家问发送过程你给人家写 配置过程服了 发送过程 简单A ----------------B-------------------------C B是dns A和C 分别充当是邮件服务器和客户端来自A 域的 邮件 A主机先看是否是给本地的如果不是 找DNS 发给外面的域 如果是则发给本地主机C 也一样 参考技术B 发邮件:
mail -s “标题” 对方@地址.com
然后输入内容
完成时 输入 . 然后回车
参考技术C 用 Evolution 试试,教程网上查下吧

java在linux下调用smtp协议发送邮件

同上

你只是发邮件不是做邮件服务器吧?这样的话 在linux和window没有区别....不然java都不好意思说自己是跨平台的了
JAVA邮件发送的大致过程是这样的的:
1、构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法。此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利。
2、构建一个properties文件,该文件中存放SMTP服务器地址等参数。
3、通过构建的properties文件和javax.mail.Authenticator具体类来创建一个javax.mail.Session。Session的创建,就相当于登录邮箱一样。剩下的自然就是新建邮件。
4、构建邮件内容,一般是javax.mail.internet.MimeMessage对象,并指定发送人,收信人,主题,内容等等。
5、使用javax.mail.Transport工具类发送邮件。
参考地址http://www.cnblogs.com/codeplus/archive/2011/10/30/2229391.html追问

这是我的邮件发送代码。但是现在在Windows下就没有问题。在centos下就会说用户无效。

参考技术A 用javamail 可以实现的。追问

就是用的javamail发送的。在Windows下发送的时候一点问题都没有。但是到centos下就会报用户找不到。用的是橙云空间

参考技术B 可以做到啊, 看下窝的网名行吗?一定可以解决的哦!!

以上是关于linux下发送邮件过程的主要内容,如果未能解决你的问题,请参考以下文章

java在linux下调用smtp协议发送邮件

linux下使用自带mail发送邮件

linux下使用自带mail发送邮件

linux服务器下发送邮件

linux下多个sendmail服务器怎么互发邮件

linux怎么接收windows发送的信息( 邮件)?