php - 带有发件人姓名的 PEAR PHP 邮件

标签 php email pear mailer

我在 PHP 中使用 PEAR 的 smtp 邮件程序,它可以很好地处理附件 CC 和 BB 以及多个收件人。我的老板在发送电子邮件时需要发件人说出发件人的姓名。我们的销售代表说这是必须的。我尝试按照说明进行操作,但是当我使用下面的代码时,电子邮件不会发送。我猜邮件程序中的所有电子邮件类型都必须以相同的格式编写。例如

 //GET EMAIL OF USER
        $result = mysql_query("SELECT email, email_pass, fullname FROM u_perinfo WHERE user_id = '$_SESSION[uid]'")
        or die("There was an error when grabbing your email information");
        if(mysql_num_rows($result) > 0){
            $row = mysql_fetch_array($result);
            if($row[0] != ''){
                $from = "$row[2] <$row[0]>";
            }
            $email_pass = $row[1];
        }

        if(!empty($additional)){
            $email .= ", $additional";
        }

        $recipients = array();
        $headers["Subject"] = $subject;
        $headers["From"] = "$from";
        $headers["To"] = "$email";
        $headers["Cc"] = "$cc";
        $headers["Bcc"] = "$bcc";

将产生John Doe <johndoe@gmail.com>对于 from 变量 而行 $from = "$row[2] <$row[0]>;";转向$from = $row[0]只会产生 johndoe@gmail.com 当使用后者(仅使用电子邮件)时,它会发送信息并完美运行。当尝试合并名称时,它根本不起作用。难道我做错了什么?任何帮助将不胜感激。

更新:这是您要求的我的邮件代码

$crlf = "\n";
        $mime = new Mail_mime($crlf);
        // Setting the body of the email
        $mime->setTXTBody($mailmsg);
          $mime->setHTMLBody($mailmsg);                                           body = $mime->get();
        $headers = $mime->headers($headers);

        //$mailmsg = "Welcome to Addatareference.com! \r\n\r\nBelow is your unique login information.  \r\n\r\n(Please do not share your login information.)$accountinfo";
        /* SMTP server name, port, user/passwd */
        $smtpinfo["host"] = "smtp.emailsrvr.com";
        $smtpinfo["port"] = "25";
        $smtpinfo["auth"] = true;
        $smtpinfo["username"] = "$from";
        $smtpinfo["password"] = "$email_pass";
        /* Create the mail object using the Mail::factory method */
        $mail_object =& Mail::factory("smtp", $smtpinfo);
        /* Ok send mail */
        $mail_object->send($recipients, $headers, $body);

最佳答案

我的问题是,名称应按如下方式引用:

$from = '"Mywebsite.com" <noreply@mywebsite.com>';

如果 NAME 包含 ()<>@,;\:"。字符串应该被引用

希望对大家有帮助 ;)

关于php - 带有发件人姓名的 PEAR PHP 邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471627/

相关文章:

PHP 套接字类型和 TCP 窗口大小

javascript - 包含 JavaScript 的 Joomla 文章的电子邮件伪装替代方案

python - SparkPost:至少需要一个有效的收件人 python/django API

php - OOP php5结构

excel - Spreadsheet_Excel_Writer Excel 2007 格式

php - SQL 查询没有使用 DATE_FORMAT 方法重新格式化 PHP 文件上的日期?

php - 如何优化具有不同具体分数和排名的分数/排名表?

php - 从 Amazon Alexa 技能包发送 HTTP post 请求

python - 通过电子邮件发送大文本文件

excel - pear Excel Writer 编码