2013-06-13 2 views
5

Я использую gmail SMTP для отправки почты с помощью библиотеки phpmailer. Он отправляет почту в порядке, но не отправляет с почтового адреса, который я устанавливаю в адресе SetFrom. Вот мой код:SetFrom PHPMailer не работает

<?php 
require 'phpmailer/class.phpmailer.php'; 
$mail = new PHPMailer; 

$mail->IsSMTP(); 
$mail->SMTPAuth = true; 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 587; 
$mail->Username = "[email protected]"; 
$mail->Password = "gmail_password"; 

$mail->From   = '[email protected]'; 
$mail->FromName  = 'Admin'; 
$mail->AddAddress('[email protected]', 'Receiver'); // Add a recipient 
$mail->IsHTML(true); 

$mail->Subject = 'Here is the Subject'; 
$mail->WordWrap = 50; 
$mail->Body = "This is in <b>Blod Text</b>"; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->Send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
    exit; 
} 

echo 'Message has been sent'; 
?> 

Он посылает почту от [email protected], но я хочу, чтобы отправить с «[email protected]», как указано в $ mail-> С. Любая помощь будет высоко оценена.

+1

Вы узнали, что говорится в Google [об отправке писем с разных адресов] (https://support.google.com/mail/answer/22370?hl=ru) – Anigel

+0

@ Анигель: Предположим, вы вступаете в контакт формы и отправки почты с phpmailer. От адреса будет то, что пользователь заполняет в поле адреса электронной почты, а адрес - ваш адрес электронной почты. В этом случае, каждый раз для разных пользователей, fromEmail всегда будет отличаться. Итак, мы должны установить его в $ mail-> From. То, что я делаю. Я не думаю, что это должно быть что-либо из статьи вашей ссылки. – prembaranwal

+5

Я не думаю, что вы прочли статью, а Google говорит, что вы можете отправлять только адреса, настроенные в вашей учетной записи google. Вы не можете просто войти в систему как jo.bloggs и отправить электронное письмо от jane.doe. Если вы хотите сделать то, что вы только что описали, то вы не можете использовать gmail SMTP, вам придется использовать другой сервер, который позволяет отправлять электронную почту как кто-либо и вы получите спам-фильтр или заблокирован на многих почтовых серверах, так как ваш почтовый сервер не будет соответствовать надлежащему почтовому серверу для пользователей из адреса IE, он не будет проверять SPF. – Anigel

ответ

-2

Обновите последнюю версию PHPMailler. Вы также должны убедиться, что вы включили отладку в другом, чтобы просмотреть сообщения erro.

$mail->SMTPDebug = 2; 

Вы обнаружите ошибку. Также убедитесь, что ваши учетные данные SMTP-сервера верны. Как хост, имя пользователя и пароль. Шахта работала правильно

4

Да, это ограничение Google Mail. Адрес электронной почты «От» должен соответствовать или автоматически устанавливается таким образом с помощью SMTP Google.

Мое решение было добавить

$mail->AddReplyTo($FromEmail, $FromName); 

Таким образом, по крайней мере, если вы ответить на сообщение будет доставлено, как описано

3

Существует еще один способ установить с адресом в PHPMailer и лучше поддерживается. Я обнаружил, что сервер, на котором я использовал phpmailer, не передавал электронную почту другому серверу с того же хоста. Но затем я изменяю способ, которым я устанавливаю адрес из адреса, и он решает проблему.

Использование:

$mail->SetFrom('[email protected]', 'Admin'); 

Вместо $ mail-> От и $ mail-> FromName.

+0

100% работаю спасибо! –

1

, если вы хотите использовать другой адрес электронной почты в качестве sentFrom, то вы можете установить свою электронную почту в настройках Gmail:

Настройки> Аккаунты и импорт> Отправить письмо как: установить другой адрес электронной почты, который вы хотите использовать как из :

Если вы используете zoho, тогда вы можете следовать: Настройки> Почтовая вкладка> Отправить почту как> добавить с адреса , затем проверить это письмо.

Смежные вопросы