Hallo,
Vraagje,
Ik heb bij pcextreme een website gehost, echter word er geen mail verzonden, of blijft deze heel lang hangen, en/of na 6-8 uur aan. blijkbaar een probleem met (phpmail)

Nu heb ik contact gehad maar word er niet verder geholpen.
Volgens pcextreme moet ik de mail via smtp verzenden. ???
Ik ben niet echt een programmeur, en heb hier wat hulp bij nodig.

Met vriendelijke groet Pieter
<?php

include 'common.php';

if (($system->SETTINGS['contactseller'] == 'logged' && !$user->is_logged_in()) || $system->SETTINGS['contactseller'] == 'never')
{
if (isset($_SESSION['REDIRECT_AFTER_LOGIN']))
{
header('location: ' . $_SESSION['REDIRECT_AFTER_LOGIN']);
}
else
{
header('location: index.php');
}
}

if (!isset($_POST['auction_id']) && !isset($_GET['auction_id']))
{
$auction_id = $_SESSION['CURRENT_ITEM'];
}
else
{
$auction_id = intval($_GET['auction_id']);
}
$_SESSION['CURRENT_ITEM'] = $auction_id;

// Get item description
$query = "SELECT a.user, a.title, u.nick, u.email FROM " . $DBPrefix . "auctions a
LEFT JOIN " . $DBPrefix . "users u ON (u.id = a.user)
WHERE a.id = " . intval($auction_id);
$result = mysql_query($query);
$system->check_mysql($result, $query, __LINE__, __FILE__);

if (mysql_num_rows($result) == 0)
{
$TPL_error_text = $ERR_606;
}
else
{
$auction_data = mysql_fetch_assoc($result);
$seller_id = $auction_data['user'];
$item_title = $auction_data['title'];
$seller_nick = $auction_data['nick'];
$seller_email = $auction_data['email'];
}

if (isset($_POST['action']) || !empty($_POST['action']))
{
$cleaned_question = $system->cleanvars($_POST['sender_question']);
if ($system->SETTINGS['wordsfilter'] == 'y')
{
$cleaned_question = $system->filter($cleaned_question);
}

// Check errors
if (isset($_POST['action']) && (!isset($_POST['sender_name']) || !isset($_POST['sender_email']) || empty($seller_nick) || empty($seller_email)))
{
$TPL_error_text = $ERR_032;
}

if (empty($cleaned_question))
{
$TPL_error_text = $ERR_031;
}

if (isset($_POST['action']) && (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i', $_POST['sender_email']) || !preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i', $seller_email)))
{
$TPL_error_text = $ERR_008;
}
if (empty($TPL_error_text))
{
$mes = $MSG['337'] . ': <i>' . $seller_nick . '</i><br><br>';
$emailer = new email_handler();
$emailer->assign_vars(array(
'SENDER_NAME' => $_POST['sender_name'],
'SENDER_QUESTION' => $cleaned_question,
'SENDER_EMAIL' => $_POST['sender_email'],
'SITENAME' => $system->SETTINGS['sitename'],
'SITEURL' => $system->SETTINGS['siteurl'],
'AID' => $auction_id,
'TITLE' => $item_title,
'SELLER_NICK' => $seller_nick
));
$item_title = $system->uncleanvars($item_title);
$subject = $MSG['335'] . ' ' . $system->SETTINGS['sitename'] . ' ' . $MSG['336'] . ' ' . $item_title;
$from_id = (!$user->logged_in) ? $_POST['sender_email'] : $user->user_data['id'];
$id_type = (!$user->logged_in) ? 'fromemail' : 'sentfrom';
$emailer->email_uid = $seller_id;
$emailer->email_sender($seller_email, 'send_email.inc.php', $subject);
$query = "INSERT INTO " . $DBPrefix . "messages (sentto, " . $id_type . ", sentat, message, subject, question)
VALUES (" . $seller_id . ", '" . $from_id . "', '" . time() . "', '" . $cleaned_question . "', '" . $system->cleanvars(sprintf($MSG['651'], $item_title)) . "', " . $auction_id . ")";
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__);
}
}

$template->assign_vars(array(
'MESSAGE' => (isset($mes)) ? $mes : '',
'ERROR' => (isset($TPL_error_text)) ? $TPL_error_text : '',
'AUCT_ID' => $auction_id,
'SELLER_NICK' => $seller_nick,
'SELLER_EMAIL' => $seller_email,
'SELLER_QUESTION' => (isset($_POST['sender_question'])) ? $_POST['sender_question'] : '',
'ITEM_TITLE' => $item_title,
'EMAIL' => ($user->logged_in) ? $user->user_data['email'] : ''
));

include 'header.php';
$template->set_filenames(array(
'body' => 'send_email.tpl'
));
$template->display('body');
include 'footer.php';
?>
Het is niet vervelend bedoeld, maar je geeft nu een code van 500 regels, waarvan niet iedereen deze zomaar gaat doorspitten. Ikzelf heb in ieder geval even gekeken...

email_user_needapproval.php, email_user_confirmation.php, email_user_approved.php. Daar moet je het mogelijk kunnen vinden.

Anyway, als je weinig van PHP en programmeren weet, dan denk ik persoonlijk dat je het beste een vacature kan aanmaken, volgens de daarvoor geldende voorwaarden, op deze site. Een andere oplossing is om support bij de maker van het script vragen.
Of anders zelf doen, maar zonder PHP-ervaring vergt het veel engelengeduld ;-)
Hallo Aar,
Bedankt zover, Tja een vacature is ook een mogelijkheid, heb daarvoor alleen geen geld !
En support van de maker van het script adviseert om het domein en account naar zijn toko te verhuizen.
Ik ben met het mail verhaal al een week mee bezig!! :( is ook een bezigheid voor mij
website
Pieter Jansen op 11/08/2014 19:46:03

Hallo Aar,
Bedankt zover, Tja een vacature is ook een mogelijkheid, heb daarvoor alleen geen geld!

Wie heeft het over geld? Een tagje met [vrijwillig] in de titel kan natuurlijk ook.
Als ik het zo zie worden er HEUL veel dingen neergezet wat niet nodig is.
Test het eerst eens met wat minder informatie.

Gebruik je een SMTP of wordt het door mail(); van PHP afgehandeld.
gezien het probleem, dat de mail blijft hangen, en de informatie van pcextreme.nl,, wordt de mail afgehandeld door mail(); van PHP. dat kan dus vertragen, hun advies was dus ook ook verstuur de mail via SMTP
Daarom via PHPmailer, die heeft daar ondersteuning voor.
Ik gok dat je het in
email_user_needapproval.php
email_user_confirmation.php
en
email_user_approved.php

kan vinden. Het ligt er net aan hoe je de activatie hebt ingesteld.
In ieder geval moet er, naar mijn idee, wel een verwijzing in deze bestanden zijn, naar de manier die gebruikt wordt om te mailen.

Toch blijft het vreemd dat PCextreme beweert dat de standaard mail() functie niet goed werkt. Voor mij zou dat een reden zijn om het vertrouwen in zo'n partij te verliezen.
Hi,
Bedankt zover, ik ga eens zoeken in de bestanden die je hierboven benoemt, en zal de code die ik vindt hier plaatsen,
Had even de moet opgegeven maar zit toch weer na 1 uur achter het scherm,

ik oordeel ook niet verder over PCx, maar had na 8jaar klant toch wel wat meer support verwacht.


[size=xsmall]Toevoeging op 11/08/2014 22:01:46:[/size]



<?php

include 'common.php';

if (($system->SETTINGS['contactseller'] == 'logged' && !$user->is_logged_in()) || $system->SETTINGS['contactseller'] == 'never')
{
if (isset($_SESSION['REDIRECT_AFTER_LOGIN']))
{
header('location: ' . $_SESSION['REDIRECT_AFTER_LOGIN']);
}
else
{
header('location: index.php');
}
}

if (!isset($_POST['auction_id']) && !isset($_GET['auction_id']))
{
$auction_id = $_SESSION['CURRENT_ITEM'];
}
else
{
$auction_id = intval($_GET['auction_id']);
}
$_SESSION['CURRENT_ITEM'] = $auction_id;

// Get item description
$query = "SELECT a.user, a.title, u.nick, u.email FROM " . $DBPrefix . "auctions a
LEFT JOIN " . $DBPrefix . "users u ON (u.id = a.user)
WHERE a.id = " . intval($auction_id);
$result = mysql_query($query);
$system->check_mysql($result, $query, __LINE__, __FILE__);

if (mysql_num_rows($result) == 0)
{
$TPL_error_text = $ERR_606;
}
else
{
$auction_data = mysql_fetch_assoc($result);
$seller_id = $auction_data['user'];
$item_title = $auction_data['title'];
$seller_nick = $auction_data['nick'];
$seller_email = $auction_data['email'];
}

if (isset($_POST['action']) || !empty($_POST['action']))
{
$cleaned_question = $system->cleanvars($_POST['sender_question']);
if ($system->SETTINGS['wordsfilter'] == 'y')
{
$cleaned_question = $system->filter($cleaned_question);
}

// Check errors
if (isset($_POST['action']) && (!isset($_POST['sender_name']) || !isset($_POST['sender_email']) || empty($seller_nick) || empty($seller_email)))
{
$TPL_error_text = $ERR_032;
}

if (empty($cleaned_question))
{
$TPL_error_text = $ERR_031;
}

if (isset($_POST['action']) && (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i', $_POST['sender_email']) || !preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i', $seller_email)))
{
$TPL_error_text = $ERR_008;
}
if (empty($TPL_error_text))
{
$mes = $MSG['337'] . ': <i>' . $seller_nick . '</i><br><br>';
$emailer = new email_handler();
$emailer->assign_vars(array(
'SENDER_NAME' => $_POST['sender_name'],
'SENDER_QUESTION' => $cleaned_question,
'SENDER_EMAIL' => $_POST['sender_email'],
'SITENAME' => $system->SETTINGS['sitename'],
'SITEURL' => $system->SETTINGS['siteurl'],
'AID' => $auction_id,
'TITLE' => $item_title,
'SELLER_NICK' => $seller_nick
));
$item_title = $system->uncleanvars($item_title);
$subject = $MSG['335'] . ' ' . $system->SETTINGS['sitename'] . ' ' . $MSG['336'] . ' ' . $item_title;
$from_id = (!$user->logged_in) ? $_POST['sender_email'] : $user->user_data['id'];
$id_type = (!$user->logged_in) ? 'fromemail' : 'sentfrom';
$emailer->email_uid = $seller_id;
$emailer->email_sender($seller_email, 'send_email.inc.php', $subject);
$query = "INSERT INTO " . $DBPrefix . "messages (sentto, " . $id_type . ", sentat, message, subject, question)
VALUES (" . $seller_id . ", '" . $from_id . "', '" . time() . "', '" . $cleaned_question . "', '" . $system->cleanvars(sprintf($MSG['651'], $item_title)) . "', " . $auction_id . ")";
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__);
}
}

$template->assign_vars(array(
'MESSAGE' => (isset($mes)) ? $mes : '',
'ERROR' => (isset($TPL_error_text)) ? $TPL_error_text : '',
'AUCT_ID' => $auction_id,
'SELLER_NICK' => $seller_nick,
'SELLER_EMAIL' => $seller_email,
'SELLER_QUESTION' => (isset($_POST['sender_question'])) ? $_POST['sender_question'] : '',
'ITEM_TITLE' => $item_title,
'EMAIL' => ($user->logged_in) ? $user->user_data['email'] : ''
));

include 'header.php';
$template->set_filenames(array(
'body' => 'send_email.tpl'
));
$template->display('body');
include 'footer.php';
?>
Hmm... send_email.inc.php lijkt me wat diepgaander.

Reageren