PHPMailer地址无效

时间:2015-06-04 08:49:53

标签: php email phpmailer

我想发送一封PHPMailer的邮件。我使用这段代码,但是我收到了这个错误:

  

地址无效:example@gmail.com

(我使用StackOverflow的假地址。我在实际代码中使用了一个真实的地址。)

<?php

    $from = "My Name";
    $mail = "example@gmail.com";

    require_once('./class.phpmailer.php');

    $bodytext = "
    <html>
    <head>
    <title>title</title>
    </head>
    <body>
    <h1 style='text-align:center'>Some text</h1>
    <p>more text. Here's a name : $from</p>
    </body>
    </html>
    ";
    try {
        $email = new PHPMailer(true);
        $email->From      = 'webmaster@mysite.com';
        $email->FromName  = 'WebMaster';
        $email->isHTML(true);
        $email->Subject   = 'subject';
        $email->Body      = $bodytext;
        $email->addAddress( $mail, "Name" );
        $email->AddReplyTo($mail,"Name");

        // $file_to_attach = $filePath;

        // $email->AddAttachment( $file_to_attach , 'constat.pdf' );

        $email->Send();
        } catch (Exception $e) {
        echo $e->getMessage();
    }
    // var_dump($email);
?>

Sice已经有一台SMTP服务器正在运行,我没有必要配置它,而且PHP函数mail正在运行。

如何解决此错误?

1 个答案:

答案 0 :(得分:2)

好。实际上,正则表达式存在一个问题,即当选择的模式为pcre8时,检查邮件地址是否有效。我把它改成了

/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

它现在正在工作。

谢谢@Synchro。