我在Java中设置套接字,用户可以输入用户ID和密码登录邮件的SMTP服务器。发送电子邮件时,我需要知道服务器上用户的电子邮件地址,以便我可以将其放入电子邮件的From:
标题中。但有时,用户的ID可能与他的电子邮件地址不完全相同。例如,用户ID可以是abc_john
,主机名可以是smtp.smith.com
,但实际的电子邮件地址可以是john@mail.smith.com
。这样的事情。这是用户名并不意味着它的实际电子邮件地址。
有没有办法解决Java中的实际电子邮件地址?我使用Socket连接他的SMTP服务器,不 JavaMail API。我希望是否有可以返回实际电子邮件地址的SMTP命令。
答案 0 :(得分:2)
向SMTP服务器发送VRFY
命令,将用户名指定为参数。如果服务器支持VRFY
(它是可选但推荐的命令),则响应应包括用户邮箱的完整电子邮件地址。有关详细信息,请参阅RFC 2821。
答案 1 :(得分:0)
根据使用的用户名和SMTP服务器,您无法获取任何内容。单个SMTP服务器可以充当多个域的MX(例如,我的公司使用gmail作为其邮件提供商,但我们的电子邮件地址仅来自我们的公司域)。在过去(垃圾邮件兴起之前),您可以使用 - 至少在理论上 - 任何SMTP服务器为任何给定的电子邮件发送邮件。
简单地说:用户需要以这种或那种方式提供完整的电子邮件地址。