2016-02-19 120 views
0

我曾经使用“PHP邮件程序”使用用户的电子邮件和密码进行身份验证,从他们的地址发送到我的应用程序中,但这样带来的不便。如何使用我的客户的电子邮件发送他们的电子邮件作为“发件人”

所以我想要做一些类似“Mailchimp”的事情。 Mailchimp允许用户设置他们的电子邮件,然后Mailchimp只使用用户的电子邮件作为“发件人”。

任何人都可以帮我解决这个问题。

+0

目前尚不清楚您是否正在使用'Mailchimp'或者您只是举例说明了它们具有的功能并且您想要模仿。 –

+0

如果您尝试伪造他们的电子邮件地址,根据设置,您的邮件将被标记为垃圾邮件或完全退回。你应该真的采取不同的方式发送电子邮件。 – DanFromGermany

+0

不要这样做,除非您的服务器被明确授权通过要用作发件人的地址的域SPF记录发送电子邮件。否则,您将以垃圾邮件结束,并可能将您的服务器列入黑名单。 – vard

回答

1

你不能。 MailChimp要求您通过DNS设置验证自己是电子邮件地址和域的所有者。 See more details

0

您需要做的是首先验证用户的电子邮件地址是否正确。这里是一个很好的演练,显示了如何做到这一点:

http://code.tutsplus.com/tutorials/how-to-implement-email-verification-for-new-members--net-3824

您还需要一个免责声明,以证明他们已经给你权限发送代表他们的电子邮件。

Disclaimer: by enrolling for this service you are granting this 
app permission to send emails on your behalf. 

接下来,您需要创建一个仅适用于您的应用的功能电子邮件帐户。例如:

[email protected] 

然后,最后但并非最不重要 - 继续使用PHPMailer,但使用它不同。验证并发送来自应用程序功能帐户的电子邮件,但将AddReplyTo地址设置为客户的地址和姓名。例如:

select email, firstname from client; 
$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = 'tsl'; 
$mail->SMTPDebug = 1; 
$mail->Host  = [email protected]; 
$mail->Port  = EMAIL_PORT; 
$mail->Username = [email protected]; 
$mail->Password = yourpass; 
$mail->SetFrom('[email protected]', 'Functional Mailer'); 
$mail->AddReplyTo('(email from select)', '(firstname from select)'); 
相关问题