2016-03-28 3 views
0

Я пытаюсь создать веб-сайт на (общедоступной) учетной записи веб-хостинга. И я столкнулся с проблемой с методом mail(). Сайт имеет контактную форму, где пользователь может представить свои отзывы:Замена метода PHP mail()?

Name: _____________ 
Email: ____________ 
Message: __________ 

Так что я использовал метод почта(), как, например, чтобы отправить его по электронной почте на свой собственный счет:

if(mail("[email protected]", 
    "Customer message", 
    $message, 
    "From: $name <$email>\r\n". 
    "Reply-To: $name <$email>\r\n". 
    "X-Mailer: PHP/".phpversion()) === true) 
{ 
    $messageWasSent = true; 
} 

Поэтому, когда я пытаюсь это сделать, письмо отправляется, но есть несколько проблем с ним.

Например, для моего теста я предоставил мой фактический адрес электронной почты, говорят, [email protected] но когда электронная почта получена в моем [email protected] Hotmail счета, поле from электронной почты заполняется с электронной почтой по умолчанию на общий хостинг-сервер, или что-то как [email protected], а не [email protected], как я ожидал бы этого.

Также электронное письмо автоматически помещалось в Junk Hotmail, хотя в нем не было вложений, изображений или чего-либо еще. Это было текстовое сообщение.

Вот скриншот:

enter image description here

Так что я понимаю, что это общий хостинг компания не хочет, чтобы отправить спам, используя метод почты(), но как еще я могу отправить эти письма от моего веба сайт? Есть метод замены для mail()?

+0

Вы не можете отправлять со своей учетной записи Hotmail, потому что почти все поставщики электронной почты используют систему для защиты от отправки электронной почты с неаудированных адресов. – Ferrybig

+1

Вы можете использовать службу электронной почты, такую ​​как https://sendgrid.com/ – Tchoupi

+0

@Tchoupi : Благодаря. Звуки SendGrid очень приятные. Вы использовали его, насколько он надежный? До тех пор, пока ему не нравятся никакие махинации, [Mandrill did] (http://thenextweb.com/dd/2016/02/25/in-hostile-move-mandrill-gives-all-developers-60-days- to-switch-to-paid-mailchimp-service/# gref), в этом году я бы с этим справился. – c00000fd

ответ

0

Вы можете использовать PHPMailer.

Пример:

$mail = new PHPMailer; 
$mail->isSMTP(); 

// You can use the SMTP host/auth details 
// supplied by your personal email provider. 
$mail->SMTPAuth = true; 
$mail->Host = 'smtp.example.com'; 
$mail->Username = 'myUsername'; 
$mail->Password = 'myPassword'; 

$mail->setFrom('[email protected]'); 
$mail->addAddress('[email protected]'); 

$mail->Subject = 'A subject.'; 
$mail->Body = 'A message.'; 

$mail->send(); 

Поскольку вы аутентификация HOTMAIL/Gmail или в зависимости от того сервера электронной почты вы используете, получатель получит письмо, так же, как если бы вы послали его с помощью своего любимого почтового клиента (это PHP электронной почты клиент).