2

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);
4

3 に答える 3

2

使用する必要があります

$from = $row[2]." <".$row[0]."> ";

代わりは

$from = "$row[2] <$row[0]>;";

また、ダブルセミコロンで問題が発生する可能性があります。最後にセミコロンを1つだけ使用します。

于 2011-06-24T18:01:29.000 に答える
0

別のヘッダーを追加します。

$fullName = $row[2];
$headers["X-Sender"] = "<$fullName>";
于 2011-06-24T17:57:59.213 に答える