1

是否有人知道允许用户在不透露电子邮件地址的情况下相互发送电子邮件的库/API/服务/PHP 代码?这似乎是一种常见的需求,以至于我自己滚动是一种耻辱。

Usage scenario:
1)  User A posts public-facing content on our site.
2)  User B wants to talk to User A privately.  He is able to click on User A's name and launch an email to "mywebsite-userid123456@relayservice.com".
3)  When User B sends the email, the email goes to mywebsite-userid123456@relayservice.com, which then calls our server to find out who userid 123456 is, and then relays the email.  Likewise, any replies are masked.  (Though this can be optional)

有这样的动物吗?

4

2 回答 2

3

您可以尝试使用 Osclass 之类的功能:

' http://osclass.org/ '

或者:

您将需要确保您有一个合法的邮件服务器设置。您可以使用您选择的任何 email@yourdomain.com,这意味着将电子邮件转换为掩码很简单,只需使用您喜欢的语言进行以下编码即可:

不太安全的方式1:

    //Make sure the user is logged in or prompt to do so
    if(user.LoggedIn())
    {
        mail.send(form.ToField, user.StoredUniqueId, form.subject, form.content);
    }
    else
    {
        Forward to user login page;
    }

更安全:

    //Make sure the user is logged in or prompt to do so
    if(user.LoggedIn())
    {
        //Create a unique entry into a database for reverse lookup
        string uniqueEmailID = CreateUniqueEmail(user.EmailAddress);
        DbConnection.AddEntry(uniqueEmailID, user.EmailAddress, Date.Now);
        mail.send(form.ToField, uniqueEmailID, form.subject, form.content);
    }
    else
    {
        Forward to user login page;
    }

在第一种格式中,如果您将用户的电子邮件地址转换为唯一的电子邮件地址,那么有人可能能够对您的转换函数进行逆向工程并获得人们的实际电子邮件。

如果您使用随机生成器并存储该电子邮件,则第三方可以收集这些电子邮件并将其存储为垃圾邮件,因为它们永远不会改变。

在第二种更安全的格式中,您的电子邮件每次都来自不同的电子邮件,不允许存储或重复使用用户的临时电子邮件地址,但如果您希望用户能够回复,则必须编写一些代码这些地址。该网站必须能够将它们翻译回他们的实际用户帐户。您可以使用 GUID 格式的电子邮件 @yourdomain.com(如果您愿意,可以添加一些额外的文本和/或去掉破折号)。在设定的天数后,您可以从反向查找表中删除唯一的电子邮件地址,并拒绝任何不在表中的电子邮件,基本上拒绝收到电子邮件的用户未“回复”的任何内容. 要了解有关 GUID 的更多信息,请查看此处:

' http://www.guidgenerator.com/ '

我希望这有帮助。

于 2013-06-11T17:15:14.930 回答
1

我想大多数时候它只是通过在您的服务器上为用户提供他们自己的电子邮件地址来处理。除非您提供身份信息,否则电子邮件地址实际上是匿名的。所以运行一个邮件服务器,给他们地址“youraddress@myserver.com”,并存储他们的真实电子邮件地址;然后任何回复都会自动转发到他们的真实电子邮件。许多虚荣的电子邮件地址都是这样工作的。

这将允许有效的隐私,因为回复用户不会知道谁真的在另一端,只要其他用户不想透露自己,并且在回复时小心(而不是通过您的网络表单发送)比他们自己的电子邮件客户端)。

于 2013-06-11T18:03:09.607 回答