この記事では主にメールを送信するためにsmtpを実装するecshopを紹介しますので、必要な友達は参考にしてください
。ECShop の smtp メソッドを使用して電子メールを送信する場合、cls_smtp クラス ファイルで、get_data メソッドのステートメントを実行します。
コードは次のとおりです:$line = fgets($this->connection, 512);
;、タイムアウトエラーが発生しました。
この関数の実行をコメントアウトして直接メールを送信すると、ehlo command failed というエラーが返されます。
しかし、リンクデータを印刷すると確かに繋がっています。
以前は他のプログラムを使って普通にメール送信できたので、関数を再送信してphpmailerを代わりに使ってメールを送信しています。
コードは次のとおりです:
関数 smtp_mail($name, $email, $subject, $content, $type = 1, $notification=false) {
/* メールエンコーディングが EC_CHARSET でない場合は、文字セット変換オブジェクトを作成し、エンコーディングを変換します */
if ($GLOBALS['_CFG']['mail_charset'] != EC_CHARSET)
{
$name = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $name);
$subject = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $subject);
$content = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $content);
$shop_name = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $GLOBALS['_CFG']['shop_name']);
}
$charset = $GLOBALS['_CFG']['mail_charset'];
include_once ROOT_PATH 'includes/phpmailer/class.phpmailer.php';
$mail = new PHPMailer();
$mail->From = $GLOBALS['_CFG']['smtp_user'];
$mail->FromName = '雲南**放送株式会社';
if ($GLOBALS['_CFG']['mail_service'] == 0) {
$mail->isMail();
} 他 {
$mail->IsSMTP();
$mail->ホスト = $GLOBALS['_CFG']['smtp_host'];
$mail->ポート = $GLOBALS['_CFG']['smtp_port'];
$mail->SMTPAuth = !empty($GLOBALS['_CFG']['smtp_pass']);
$mail->ユーザー名 = $GLOBALS['_CFG']['smtp_user'];
$mail->パスワード = $GLOBALS['_CFG']['smtp_pass'];
}
$mail->Encoding = "base64";
//$mail->Priority = $this->priority;
$mail->CharSet = $charset;
$mail->IsHTML($type);
$mail->件名 = $subject;
$mail->Body = $content;
$mail->タイムアウト = 30;
$mail->SMTPDebug = false;
$mail->ClearAddresses();
$mail->AddAddress($email, $name);
$mail->confirmReadingTo = $notification;
$res = $mail->Send();
if (!$res)
{
$GLOBALS['err']->add($mail->ErrorInfo);
$GLOBALS['err']->add($GLOBALS['_LANG']['sendemail_false']);
false を返す;
}
true を返す;
}
この記事の内容は以上です。気に入っていただければ幸いです。