邮件代发功能怎么做?

水魚魚 发布于 2015/06/04 15:49
阅读 1K+
收藏 1

有谁知道邮件代发怎么实现。

具体问题可以看下图。实现同样的效果

加载中
0
水魚魚
水魚魚

引用来自“布谷鸟”的评论

SMTP命令中MAIL FROM域的值和信头中Sender属性值不一致,即会被某些邮箱服务器认定为代发

引用来自“布谷鸟”的评论

POP3服务器的基本验证过程:

  1. 接收HELO命令指定的主机名,根据反解验证来源IP是否合法(如:smtp-1.gmail.com)
  2. 接收MAIL FROM命令(如:sb@xx.com)
  3. 接收RCPT TO 命令(如:xx@domain.com),此时服务器可能会验证此用户是否存在

进行到这里,如果一切正常,说明对方服务器已经基本完成验证了,会话合法,接下来发送信头。

信头包含一个FROM属性,用于指定发信人。注意,在此处指定的发信人可以与MAIL FROM中指定的名称不一致,你甚至可以指定为 admin@oschina.net

此时,如果邮件正常发送,对方收到的邮件将会显示为由sb@xx.com代发。

我用javamail所邮件代理发送。
例如用“21121111@qq.com"代发,"xxx@163.com",其中QQ邮箱的密码我是知道的可以通过认证,而被代发的任何邮箱(xxx@163)的密码我是不知道的。
当设置from(xxx@163)的时,发送邮件报认证错误。


EHLO PC-20150428YDXN
250-smtp.qq.com
250-PIPELINING
250-SIZE 73400320
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-MAILCOMPRESS
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SIZE", arg "73400320"
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg ""
DEBUG SMTP: Found extension "MAILCOMPRESS", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 VXNlcm5hbWU6
d2FuZ3lxQDE2ZmVuZy5jb20=
334 UGFzc3dvcmQ6
MTIzcWF6
235 Authentication successful
DEBUG SMTP: use8bit false
MAIL FROM:<10000@163.com>
501 mail from address must be same as authorization user
DEBUG SMTP: got response code 501, with response: 501 mail from address must be same as authorization user


RSET
250 Ok
com.sun.mail.smtp.SMTPSendFailedException: 501 mail from address must be same as authorization user


如果我不设置from(xxx@163)的时,可以发送。但是收到的邮件里,发件人是空,只显示“又21121111@qq.com代发


一下是代码片段,

..............
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("10000@163.com",10000"));
msg.setSender(new InternetAddress("21121111@qq.com"));
................

布谷鸟
布谷鸟
回复 @基山IT培训 : 不用,你也可以找家支持此功能的第三方邮件发送提供商,亚马逊,Mailgun,都是可以的
水魚魚
水魚魚
回复 @布谷鸟 : 你的意思是我要从邮件服务器入手吗?那岂不是代价很大。
布谷鸟
布谷鸟
javamail是通过第三方邮件服务器发送邮件,达不到你想要的效果
0
独孤青冥
独孤青冥
有专门的代发邮件服务提供商,百度一搜就有
水魚魚
水魚魚
@十分不强力 sendmai是什么东西,如果不用php怎么做。我希望是与语言无关的
水魚魚
水魚魚
@独孤青冥 要是做做代发邮件服务,应该怎么弄?
0
Ivnoidea
Ivnoidea
php配合sendmail就可以做
Ivnoidea
Ivnoidea
我伪造成126的,发送是我本机发送不需要126的认证,发送邮件中也不包含用户的口令,接收方不会也无法认证,只是收到邮件,提示转发
水魚魚
水魚魚
回复 @十分不强力 : 要是你from伪造成126的,邮箱是需要通过认证后才能成功发送。我希望的代理代理发送是不需要知道被代理邮箱的密码的。
Ivnoidea
Ivnoidea
sendmail是个邮件服务器,自己组装邮件调用sendmail发送,如果填的mail from并不是本机的名称,比如伪造成126的,就会被标记为代发
0
布谷鸟
布谷鸟
SMTP命令中MAIL FROM域的值和信头中Sender属性值不一致,即会被某些邮箱服务器认定为代发
水魚魚
水魚魚
@布谷鸟 没错,但是from中的发件箱通常是需要认证过,邮件才能发送成功。可是我不可能知道邮箱的密码。所以认证就不可能通过。
0
布谷鸟
布谷鸟

引用来自“布谷鸟”的评论

SMTP命令中MAIL FROM域的值和信头中Sender属性值不一致,即会被某些邮箱服务器认定为代发

POP3服务器的基本验证过程:

  1. 接收HELO命令指定的主机名,根据反解验证来源IP是否合法(如:smtp-1.gmail.com)
  2. 接收MAIL FROM命令(如:sb@xx.com)
  3. 接收RCPT TO 命令(如:xx@domain.com),此时服务器可能会验证此用户是否存在

进行到这里,如果一切正常,说明对方服务器已经基本完成验证了,会话合法,接下来发送信头。

信头包含一个FROM属性,用于指定发信人。注意,在此处指定的发信人可以与MAIL FROM中指定的名称不一致,你甚至可以指定为 admin@oschina.net

此时,如果邮件正常发送,对方收到的邮件将会显示为由sb@xx.com代发。

返回顶部
顶部