2010-09-28 161 views
-1

我有一个我创建的表单,完成后他们被要求从下拉列表中选择他们希望通过电子邮件发送的人。使用PHPMailer发送电子邮件到变量地址

我的问题是如何将该变量添加到$邮件程序。

现在它是这样写的

$mailer -> AddAddress('[email protected]','First Last'); 

如何让我的变量有

$mailer -> AddAddress($emailAddress) - Doesn't work. 

我也试过

"'"$emailAddress"'" - 这给了我 - 无效地址:'[email protected]'这是令人沮丧的,因为这是它正在寻找的格式。

谢谢你,让我知道

这里是我使用调用邮件

$mail->Host  = "mail.yourdomain.com"; // SMTP server 
$mail->SMTPDebug = 2;      // enables SMTP debug information (for testing) 
$mail->SMTPAuth = true;     // enable SMTP authentication 
$mail->Host  = "mail.yourdomain.com"; // sets the SMTP server 
$mail->Port  = 26;     // set the SMTP port for the GMAIL server 
$mail->Username = "[email protected]"; // SMTP account username 
$mail->Password = "yourpassword";  // SMTP account password 
$mail->AddReplyTo('[email protected]', 'First Last'); 
$mail->AddAddress('[email protected]', 'John Doe'); 
$mail->SetFrom('[email protected]', 'First Last'); 
$mail->AddReplyTo('[email protected]', 'First Last'); 
$mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; 
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; //  optional - MsgHTML will create an alternate automatically 
$mail->MsgHTML(file_get_contents('contents.html')); 
$mail->AddAttachment('images/phpmailer.gif');  // attachment 
$mail->AddAttachment('images/phpmailer_mini.gif'); // attachment 
$mail->Send(); 
+0

$ mailer-> AddAddress($ emailAddress);应该工作,如果$ emailAddress =“[email protected]”;你试过在$ mailer-> AddAddress($ emailAddress)附近的代码中回显$ emailAddess; ?你能告诉我们什么“不起作用”? – Shikiryu 2010-09-28 13:20:47

+0

我做了回声,然后页面崩溃。我也试着在html下拉单引号中使用一个变量,然后调用$ mailer中的变量,但也没有奏效。 我每次使用除特定('[email protected]')以外的任何地址时都会收到无效地址。 – FixingGenie 2010-09-28 13:41:05

+0

我也尝试过使用ASCII码来调用同样在值中产生\的单引号。 ' 我还没有试过‘ ’还没有,但我现在就试试。 – FixingGenie 2010-09-28 13:49:17

回答

0

的完整代码尝试->AddAddress()呼叫前右做一个

var_dump($emailAddress); 

看看什么出来。如果你在一个函数中这样做,有可能你没有通过$ emailAddress作为参数,忘记使它成为global;

同样,不要用双引号括住电子邮件地址。这不是必需的:

$emailAddress = '[email protected]'; // correct 
$emailAddress = "[email protected]"; // correct 
$emailAddress = '"[email protected]"'; // incorrect 
$emailAddress = "\"[email protected]\""; // incorrect. 
+0

var_dump($ emailAddress) - “[email protected]” 然后显示地址无效,我发现它需要单引号来实际接受电子邮件有效。 这是我的问题,因为如果我使用单引号,我不能再使用该变量。 – FixingGenie 2010-09-28 13:36:38

+0

什么是确切的错误信息?只有两个地方可以从phpmailer输出“无效地址”,一个私有方法('AddAnAddress()')和一个公共方法'SetFrom()' – 2010-09-28 14:25:55

0

如果$ emailAddress来自POST,则使用该值的反斜杠。

确保选择框在标记中具有正确的值(检查您的查看源)。

如上所示,回显变量以检查它。

+0

我将POST转换成全局会话,然后把它成阵列。 从那里我将会话调用成一个变量,然后回显变量。 当我得到回声,它回来很好。 当我尝试用斜杠转义时,我在实际变量中得到了斜杠。 \'[email protected] \' – FixingGenie 2010-09-28 13:45:43

+0

我有我自己的邮件类。但是,它们基本上都做同样的事情:构建头文件,清理一些变量,并调用mail()。您可以编辑$ mail类以回显收件人(邮件()的第一个参数)。 – AutoSponge 2010-09-28 13:57:41

0

我得到它的工作,有一个问题在我的价值观。

其实有一对夫妇。

让我们说一些拼写错误。

尽管感谢所有的信息!

0

下面给出的代码适用于我。

$mail->AddAddress($_POST['email']); //将值从html表单直接传递给phpmailer。

0

尝试strval($emailAddress),为我工作。

相关问题