Как предложить пользователю выбрать почтовый клиент для атрибута mailto

Я искал эту функцию, если можно добавить селектор почтового клиента, когда пользователи нажимают mailto: Например, я использую следующий код для электронных писем

<a href="mailto:[email protected]">Email Us</a>

Что делать, если пользователи хотят использовать gmail/yahoo/hotmail вместо своего почтового клиента по умолчанию, например, Outlook. Я нашел похожий вопрос раньше тоже спрашивал. Но мне нужно знать, возможно ли это в любом случае с любым плагином jQuery или HTML, чем бы он ни был.


person hashmi    schedule 29.10.2012    source источник
comment
Вероятно, вы могли бы настроить что-то для подключения к службам веб-почты с использованием какой-либо формы аутентификации, такой как OAuth, но это будет сложно и трудно поддерживать. Это также невероятно не похоже на Интернет, поскольку пытается помешать способности системы контролировать опыт.   -  person Matt Whipple    schedule 29.10.2012
comment
Нет, не там я знаю. Браузеры берут mailto и переводят в системный вызов, который, в свою очередь, открывает клиент электронной почты по умолчанию. Если пользователь хочет использовать другой клиент, позвольте ему включить свою систему.   -  person Ortiga    schedule 29.10.2012
comment
Это обрабатывается браузером и системой и находится вне вашего контроля. К счастью.   -  person chovy    schedule 29.10.2012


Ответы (1)


вы не можете сделать это с помощью функции «mailto». Но вы можете настроить таргетинг на почтовых клиентов с помощью функции php. Вот функция php для таргетинга на конкретных веб-клиентов:

    Targeting Specific Web-based Clients

function wcs_mailto_ex($mailto='', $subject='', $body='', $client='', $link_text='', $link_title='', $at_replace='&#64;')
{
// init
$subject = rawurlencode(strip_tags($subject));
$body = str_replace('\r\n', '%0A', $body);
$body = str_replace('\n', '%0A', $body);
if (!$link_text) {$link_text = $mailto;}
$link_text = str_replace('@', $at_replace, $link_text);
$client = strtolower($client);

// default parameters (system mail: Outlook, Thunderbird, etc.)
$email['url'] = 'mailto:' . $mailto . '?subject=' . $subject . '&amp;body=' . $body;
$email['width'] = 0;
$email['height'] = 0;
$email['scrollbars'] = 0;

// constuct client-specific parameters
switch($client)
{
    case 'gmail':
    case 'g mail':
    case 'google mail':
    case 'google':
        $email['url'] = 'https://mail.google.com/mail/?view=cm&fs=1&tf=1&source=mailto&shva=1&to=' . $mailto . '&amp;su=' . $subject . '&amp;body=' . $body;
        $email['width'] = 700;
        $email['height'] = 500;
        $email['scrollbars'] = 1;
        break;
    case 'hotmail':
    case 'hmail':
    case 'livemail':
    case 'live mail':
        $email['url'] = 'http://mail.live.com/?rru=compose&amp;to=' . $mailto . '&amp;subject=' . $subject . '&amp;body=' . $body;
        $email['width'] = 850;
        $email['height'] = 550;
        $email['scrollbars'] = 1;
        break;
    case 'yahoo mail':
    case 'ymail':
    case 'yahoo':
        $body = str_replace('%0A', '<br>', $body);
        $body = urlencode(urlencode($body));
        $email['url'] = 'http://compose.mail.yahoo.com?to=' . $mailto . '&subject=' . rawurlencode($subject) . '&amp;body=' . $body;
        $email['width'] = 750;
        $email['height'] = 625;
        $email['scrollbars'] = 1;
        break;
}

// prep for popup
$wdw_name = 'wcs_mailto_ex_wdw';
$wdw_features = "scrollbars=$scrollbars,status=0,toolbar=0,location=0,directories=0,menubar=0,resizable=1,width=";
$url = $email['url'];
$width = $email['width'];
$height = $email['height'];
$scrollbars = $email['scrollbars'];

// determine if display should be a popup window
if ($email['width'])
{
    $javascript = "window.open('$url', '$wdw_name', '$wdw_features$width,height=$height');return false;";
    $output = "<a rel='nofollow' style='cursor:pointer;' onclick=\"$javascript\" title='$title'>" . $link_text . "</a>";
}
else
{
    $output = '<a href="' . $url . '" rel="nofollow" title="' . $link_title . '">' . $link_text . '</a>';
}

// exit
echo $output;
}

Чтобы настроить клиент gmail, вызовите вышеуказанную функцию следующим образом:

    wcs_mailto_ex('[email protected]',
            'Test Subject Line',
            'This is a sample\n\nemail for testing.\n\nBest regards,\nme',
            'gmail',
            'gMail Client'
            );

Источник: http://wpcodesnippets.info/blog/how-to-target-mailto-email-clients.html

person Community    schedule 29.10.2012