我正试图通过我的网站向用户发送电子邮件,就像craiglist一样。(例如,当用户A响应用户B发布的帖子时,会向用户A发送一封电子邮件,通知他用户A已回复然后,用户B可以按下他的电子邮件客户端中的回复按钮,如gmial / hotmail,回复邮件将被发送给用户A,任何进一步的通信将严格地在他们的2个之间,我的服务器只发送最初的电子邮件。)
目前我已经编写了一个功能,可以在成功注册后向用户发送电子邮件,我正在考虑修改它以便在上述情况下使用。但是,我不知道我会怎么做,因为我似乎无法改变我的函数中的FROM字段。
注意。我一般都是编程新手,现在正在使用PHP和Swiftmailer来处理我的电子邮件。
我的功能:
function Activation($email,$token){
$transport=Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
->setUsername('test@gmail.com')
->setPassword('testpass');
$mailer=Swift_Mailer::newInstance($transport);
$message=Swift_Message::newInstance()
->setSubject('Account activation')
->setFrom(array('mymail@gmail.com' => '*Website name*'))
->setTo(array($email => $email))
->setBody("
Thank you for registering with us. Before we can activate your account one last step must be taken to complete your registration.
<br />
<br />
Please note - you must complete this last step to become a registered member. You will only need to visit this URL once to activate your account.
<br />
<br />
To complete your registration, please visit this URL:
<a href=http://localhost/test/account/activate.php?code=$token >http://localhost/test/account/activate.php?code=".$token."</a>
<br />
<br />
**** Does The Above URL Not Work? ****
If the above URL does not work, please go to the following link into your browser:
http://localhost/test/account/activate.php
<br />
<br />
Please be sure not to add extra spaces. You will need to type in your email and activation code on the page that appears when you visit the URL.
<br />
<br />
Your email is: ".$email."
<br />
Your Activation code is: ".$token."
<br />
<br />
If you are still having problems signing up please contact a member of our support staff at *contactemail*
<br />
<br />
All the best
","text/html");
if (!$mailer->send($message))
{
throw new Exception('Message sending failed');
}
}
非常感谢任何帮助。
答案 0 :(得分:0)
Craigslist在您发布时为您(@ craigslist.com)创建临时转发地址。因此,当第一个用户发送电子邮件时,它会被重新路由到另一个用户的电子邮件地址。
大多数SMTP提供商都不允许您冒充其他人的电子邮件地址。这是有道理的,因为您可能不希望有人无法保证能够从您的地址发送电子邮件。
答案 1 :(得分:0)
您在第一段中描述的不是craigslist的功能。 Craigslist将充当所有电子邮件通信之间的中间人,这样任何一方都不会知道其他人的真实电子邮件地址。
这显然非常复杂,需要拥有自己的邮件服务器,转换表和pop / smtp cron作业。
但是,如果你想完成你最初描述的内容,那就很容易了。只需使用Sender标头和ReplyTo标头,如下面的答案所述: Should I use the Reply-To header when sending emails as a service to others?