Как получать пользовательские письма в моем бесплатном почтовом ящике Gmail через форму обратной связи на моем веб-сайте - PullRequest
0 голосов
/ 16 апреля 2009

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

Ответы [ 4 ]

2 голосов
/ 16 апреля 2009

Имеет ли этот вопрос какое-либо отношение к This One ?

Итак, у вас есть форма на вашем сайте, ваши пользователи заполняют ее, и вам нужны электронные письма с этими данными, верно?

Простой пример:

<form action="sendMail.php" method="post">
    Name: <input type="text" name="name" id="name" /><br />
    Email: <input type="text" name="email" id="email" /><br />
    Text: <textarea name="text"></textarea><br />
    <input type="submit" value="Send" />
</form>

Затем php-страница, которая отправляет письмо:

//php sendThis.php page
<?php
require("class.phpmailer.php");
$name = $_POST['name'];
$email = $_POST['email'];
$text = $name . ', ' . $email . ' has filled the form with the text:<br />' . $_POST['text'];

$from = 'your.email@gmail.com';
$to = 'your.email@gmail.com';
$gmailPass = 'your gmail password';

$mail = new PHPMailer();
$mail->IsSMTP();
// enable SMTP authentication
$mail->SMTPAuth = true;
// sets the prefix to the server
$mail->SMTPSecure = "ssl";
// sets GMAIL as the SMTP server
$mail->Host = 'smtp.gmail.com';
// set the SMTP port
$mail->Port = '465';
// GMAIL username
$mail->Username = $from;
// GMAIL password
$mail->Password = $gmailPass;
$mail->From = $from;
$mail->FromName = $from;
$mail->AddReplyTo($from, $from);
$mail->Subject = 'This is a test!';
$mail->Body = $text;
$mail->MsgHTML($text);
$mail->IsHTML(true);
$mail->AddAddress($to, $to);

if(!$mail->Send()){
    echo $mail->ErrorInfo;
}else{
    echo 'sent!';
    $mail->ClearAddresses();
    $mail->ClearAttachments();
}
?>

РЕДАКТИРОВАТЬ: только что протестировано и работает нормально. Убедитесь, что 3 файла (class.phpmailer.php, class.pop3.php и class.smtp.php) имеют правильный путь включения

1 голос
/ 24 июня 2010

Попробуйте включить openssl.

Раскомментируйте строку:

extension=php_openssl.dll

в вашем файле php.ini.

1 голос
/ 16 апреля 2009

По сути, он включает в себя функцию PHP mail():

<?php 
     mail(yourGmailAddress, object, message); 
?>

Как вы уже заметили, это решение работает, только если на веб-сервере работает почтовый сервер. Этот почтовый сервер может запрещать неизвестным пользователям. Так что вам нужно иметь учетную запись электронной почты на этом веб / почтовом сервере (я считаю, что это так). Второй шаг - пересылка почты с адреса вашего веб-сайта на ваш аккаунт Gmail. Я на 90% уверен, что это возможно из вашей конфигурации Gmail. Это также возможно из почтовой конфигурации вашего сайта. Но не настраивайте оба!

0 голосов
/ 16 апреля 2009

Вы также можете указать свой адрес электронной почты в атрибуте "action" элемента формы. Но это очень ненадежно. Как это:

<form method='post' action='mailto:your@email.com?Subject=Hello'>
...
</form>

Для правильной работы пользователей должен быть установлен и настроен почтовый клиент. Есть и другие недостатки. Вы должны провести некоторое исследование, чтобы выяснить, подходит ли вам этот метод или нет. http://www.google.com/search?client=opera&rls=en&q=form+action+mailto&sourceid=opera&ie=utf-8&oe=utf-8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...