PHPmailer na interii - brak wiadomości

0

Witam,
mam taki problem z phpmailer wszystko jest dobrze pisze że wiadomość wysłana, później sprawdzam skrzynkę i wiadomość jest pusta dlaczego?? Pocztę mam na interii.

Kod:

<?php
$email = isset($_POST['email']) ? $_POST['email'] : false;
$topic = isset($_POST['topic']) ? $_POST['topic'] : false;
$message = isset($_POST['message']) ? $_POST['message'] : false;

error_reporting(E_ALL);
ini_set("display_errors", 1);

if(isset($_POST['napisz_kontakt'])){
    include "../phpmailer/class.phpmailer.php"; // include the class name
	$mail = new PHPMailer(); // create a new object
	$mail->Host        = 'poczta.interia.pl';
	$mail->Port        = 465;
	$mail->SMTPAuth    = true;
	$mail->Username    = "[email protected]";
	$mail->Password    = "Haslo";
	$mail->AddAddress('[email protected]','Imie');
	$mail->Body = 'Wiadomość wysłana za pomocą formularza kontaktowego:</br>'.$message.'';
	$mail->SetFrom($email);
	$mail->Subject = ''.$topic.'';
	$mail->IsHTML(true);
	$mail->CharSet = "UTF-8";
	if(!$mail->Send()){
	    echo "Mailer Error: " . $mail->ErrorInfo;
	}else{
		echo "<meta charset='utf-8'/><script>alert('Wiadomość została przesłana. Wkrótce otrzymasz odpowiedź.');</script>";	
	    var_dump($mail->Send());
	}
}
?>
0

Gdy mam tak:

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

to wiadomość się wysyła i otrzymuję taki komunikat:

SMTP -> FROM SERVER:220 ESMTP INTERIA.PL 
SMTP -> FROM SERVER: 250-poczta.interia.pl 250-PIPELINING 250-SIZE 157286400 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250 8BITMIME 
SMTP -> FROM SERVER:250 2.1.0 Ok 
SMTP -> FROM SERVER:250 2.1.5 Ok 
SMTP -> FROM SERVER:354 End data with . 
SMTP -> FROM SERVER:250 OK. ID: 34050fadba43ac99 
SMTP -> FROM SERVER:221 2.0.0 Bye 
Message sent!

czyli tu jest dobrze.

Natomiast gdy zmienię nadawcę e-mail na inny np.

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

to otrzymuję taki komunikat:

SMTP -> FROM SERVER:220 ESMTP INTERIA.PL 
SMTP -> FROM SERVER: 250-poczta.interia.pl 250-PIPELINING 250-SIZE 157286400 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250 8BITMIME 
SMTP -> FROM SERVER:250 2.1.0 Ok 
SMTP -> FROM SERVER:553 5.7.1 : Sender address rejected: not owned by user [email protected] 
SMTP -> ERROR: RCPT not accepted from server: 553 5.7.1 : Sender address rejected: not owned by user [email protected] 
SMTP Error: The following recipients failed: [email protected] Mailer Error: SMTP Error: The following recipients failed: [email protected]
SMTP server error: 5.7.1 : Sender address rejected: not owned by user [email protected]

Dlaczego tak się dzieje? Pomoże ktoś?

0

Nie możesz z poziomu swojej skrzynki nadawać wiadomości za kogoś innego, przecież to jasno wynika z komunikatu not owned by user ....

0

Nie rozumiesz po angielsku, ok, ale widzę, że logika szwankuje.

Jak Interia ma Ci pozwolić na wysyłanie wiadomości jako nadawca w domenie onetu? Przecież to nielogiczne.

0

Jak mam zatem ustawić nadawcę e-maila? Przez formularz kontaktowy przesyłam adres osoby go wysyłającej przez zmienną $mail. Jak to zrobić?

0

Adres "from" musi się zgadzać z domeną hosta na którym jest uruchomiony skrypt.
Gdyby tak nie było oznaczało by to że Twój admin dał ... ciała i zostawił tzw. "open relay".
https://en.wikipedia.org/wiki/Open_mail_relay

Są jeszcze drobne od tego wyjątki - np. usługi zewnętrznego mailingu i GMail API.
https://developers.google.com/gmail/api/
wymaga to niestety wysyłania maila przez firmy trzecie.

0

Ale ludzie przecież posiadają różnych dostawców poczty. Zatem jeśli mam hosting na ovh to jak powinien wyglądać host? Co jeśli ktoś będzie chciał mi przesłać pytanie przez formularz kontaktowy z adresu zarejestrowanego w domenie np. onetu?

0
Mike12 napisał(a):

Ale ludzie przecież posiadają różnych dostawców poczty. Zatem jeśli mam hosting na ovh to jak powinien wyglądać host? Co jeśli ktoś będzie chciał mi przesłać pytanie przez formularz kontaktowy z adresu zarejestrowanego w domenie np. onetu?

W Twoim formularzu kontaktowym adres "from" powinien odpowiadać domenie do której jest przypięty hosting. Czyli np. "[email protected]".
Adres z formularza, ten który podał użytkownik, podajesz w treści maila.

Przykłady do PHPmailer:
http://phpmailer.worxware.com/?pg=examples

0

A jeśli chcę mieć pocztę na interii i otrzymywać e-maile przez formularz kontaktowy od użytkowników mających zarejestrowane konta u innich usługodawców to jak mam to zrobić? Nie mam poczty w domenie.

Tak wygląda obecny kod:

<?php
$email = isset($_POST['email']) ? $_POST['email'] : false;
$topic = isset($_POST['topic']) ? $_POST['topic'] : false;
$message = isset($_POST['message']) ? $_POST['message'] : false;

error_reporting(E_ALL);
ini_set("display_errors", 1);

if(isset($_POST['napisz_kontakt'])){
	require_once('../phpmailer/class.phpmailer.php');
	$mail             = new PHPMailer();
	$mail->IsSMTP(); // telling the class to use SMTP
	$mail->Host       = "poczta.interia.pl"; // SMTP server
	$mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
	                                           // 1 = errors and messages
	                                           // 2 = messages only
	$mail->SMTPAuth   = true;                  // enable SMTP authentication

	$mail->Port       = 587;                    // set the SMTP port for the GMAIL server
	$mail->Username   = "[email protected]"; // SMTP account username
	$mail->Password   = "Pass";        // SMTP account password

	$mail->SetFrom(''.$email.'', 'Imie'); //tu jest problem
	$mail->AddAddress('[email protected]','Imie');

	$mail->Subject    = ''.$topic.'';


	$mail->Body = ''.$message.'';

	if(!$mail->Send()) {
	  echo "Mailer Error: " . $mail->ErrorInfo;
	} else {
	  echo "Message sent!";
	}


}
?>
0

Czyli masz hosting u jednego dostawcy a pocztę przez zwykłe konto POP3/SMTP na Interii? To się chyba nie uda.
Ew. może się udać z GMail (patrz wyżej).

0

No tak mam. Zależy mi na interii. A gdybym utworzył pocztę w domenie i podpiął ją pod host ovh to cz da się jakoś przekierować te e-maile żebym otrzymywał na interii?

0

Ludzie, ludzie, ratunku...
Nie ustawiaj nagłówka From, tylko Reply-To plus dorzucaj maila do treści wiadomości...

Jeśli postawisz czy wykorzystasz open relay, to Interia, Onet, GMail (...) - wszyscy po kolei będą Cię banować.

0

Nie ma Reply-To, to spowoduje błąd.
Ustawiłem tak:

$mail->AddReplyTo(''.$email.'', 'Imie');

lecz to powoduje to:

SMTP -> FROM SERVER:220 ESMTP INTERIA.PL 
SMTP -> FROM SERVER: 250-poczta.interia.pl 250-PIPELINING 250-SIZE 157286400 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250 8BITMIME 
SMTP -> FROM SERVER:250 2.1.0 Ok 
SMTP -> FROM SERVER:504 5.5.2 : Sender address rejected: need fully-qualified address 
SMTP -> ERROR: RCPT not accepted from server: 504 5.5.2 : Sender address rejected: need fully-qualified address 
SMTP Error: The following recipients failed: [email protected] Mailer Error: SMTP Error: The following recipients failed: [email protected]
SMTP server error: 5.5.2 : Sender address rejected: need fully-qualified address

Wiem co to oznacza, tylko nie wiem jak to naprawić. Pomożesz?

Tzn, co masz na myśli, że będą mnie banować?

0

Pokaż cały kod plus po co te puste stringi?

1 użytkowników online, w tym zalogowanych: 0, gości: 1