Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

ROZWIĄZANY: Nadawca e-maila


Croco

Rekomendowane odpowiedzi

W ACP standardowo można ustawić nadawcę e-maila na stałe, dla każdego maila wysyłanego przez forum. Chciałbym jednak w bulk mailu mieć osobne pole input do wpisania nadawcy masowej korespondencji (nazwy wyświetlanej). Znalazłem już informację, że potrzebna będzie edycja pliku admin/applications/members/modules_admin/bulkmail/bulkmail.php, konkretnie tego fragmentu:

IPSText::getTextClass('email')->from            = $this->settings['email_out'];

Czy ktoś mógłby zasugerować jakieś rozwiązanie, jak to najlepiej zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Nie widzę innej możliwości, jak dodać nowe ustawienie w ustawieniach forum i razie konieczności wpisywać tam owy adres. Ustawienie powiedzmy z kluczem 'custom_mail_out', a kod wtedy zamieniasz na:

IPSText::getTextClass('email')->from = ( ! $this->settings['custom_mail_out'] ) ? $this->settings['email_out'] : $this->settings['custom_mail_out'];

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Zrobiłem wszystko na podstawie tytułu maila, dodałem kolumnę do bazy. Wstawiłem konieczność podania nadawcy "na twardo", nie powinien więc wysyłać ze standardowym nadawcą - do kolumny mail_custom_out nadawcę dodaje poprawnie, a maile - pomimo usunięcia z kodu odwołań do do email_out (!) wysyła nadal ze standardowym nadawcą. Jak to możliwe?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Yyy, co co zrobiłeś? Ja mówiłem o jednym prostym ustawieniu w zarządzaniu settingsami w ACP, a nie nowa kolumna czy coś. :wyglad:

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja zrobiłem nową kolumnę w tabeli bulkmaila, bowiem nadawca maila może być różny w różnych e-mailach, poza tym wygodniej byłoby mieć wszystko w jednym miejscu. Usunąłem z tego pliku w ogóle zwykły mail_out, wstawiłem nowy (custom). W formularzu dodałem nowe pole, wszystko ładnie zapisuje się do bazy (tak samo jak i treść, tytuł i detale maili) jednak wysyła się dalej mail ustawiony w mail_out (fizycznie nie ma już tego w pliku bulkmail.php). Mogę załączyć plik bulkmail.php - jest to potrzebne?

Odnośnik do komentarza
Udostępnij na innych stronach

Pozmieniałem wszystko na wzór tytułu (chcę, by podanie tego nowego nadawcy unikatowego dla każdego maila było wymagane, i bym o tym nie zapomniał). Oto co pozmieniałem, wraz z kilkoma liniami kodu przed/po:

if ( ! $mail['mail_subject'] and ! $mail['mail_content'] and ! $mail['mail_custom_out'])
{  			
           /* Just return, if there's nothing to send.  Bug #21494 */  			
return; 
          //$done = 1;
}

$sofar = intval($mail['mail_sentto']);

	$mail['mail_content']	= IPSText::stripslashes( $mail['mail_content'] );
	$mail['mail_subject']	= IPSText::stripslashes( $mail['mail_subject'] );
	$mail['mail_custom_out'] = IPSText::stripslashes( $mail['mail_custom_out'] );

IPSText::getTextClass('email')->from        = $mail['mail_custom_out'];
		IPSText::getTextClass('email')->to			= $r['email'];
		IPSText::getTextClass('email')->message		= str_replace( "\r\n", "\n", $contents );
		IPSText::getTextClass('email')->subject		= $mail['mail_subject'];

if ( ! $mail['mail_subject'] and ! $mail['mail_content'] and ! $mail['mail_custom_out']) // modified by croco 2
	{
		$this->registry->output->global_message = $this->lang->words['b_nosend'];
		$this->_mailStart();
		return;
	}

if ( ! $this->request['mail_subject'] or ! $this->request['mail_content'] or ! $this->request['mail_custom_out']) //modified by croco 2
	{
		$this->registry->output->global_message = $this->lang->words['b_entercont'];
		$this->_mailForm( $type );
		return;
	}

$save_array = array(
						'mail_subject'	=> IPSText::stripslashes( $_POST['mail_subject'] ),
						'mail_custom_out'	=> IPSText::stripslashes( $_POST['mail_custom_out'] ),

ipsRegistry::getClass('adminFunctions')->saveAdminLog( sprintf( $this->lang->words['b_maillogadd'], $this->request['mail_subject'], $this->request['mail_custom_out'] ) ); // modified by croco
		$this->_mailSendStart();
		return;

$this->DB->update( 'bulk_mail', $save_array, 'mail_id=' . $id );

		ipsRegistry::getClass('adminFunctions')->saveAdminLog( sprintf( $this->lang->words['b_maillogedit'], $this->request['mail_subject'], $this->request['mail_custom_out'] ) );

Oczywiście dodałem odpowiedni formularz w pliku tpl - jedyne co zauważam, chociaż nie sądzę żeby to mogło być przyczyną, to w "podsumowaniu", czyli tym miejscu w którym ustala się ilość maili na krok, nie widać żadnej informacji o nadawcy (nie doedytowałem tego, ale to nie powinno mieć znaczenia, prawda?)

Odnośnik do komentarza
Udostępnij na innych stronach

Pozmieniałem jeszcze trochę, w szczegółach wiadomości również wyświetla się zapisany w bazie danych nadawca e-maila, ale wysyła standardowym, ustawionym dla całego forum (gdzie mail_out nie występuje już w bulkmail.php, bo został zakomentowany). Tak mi przyszło do głowy żeby sprawdzić jeszcze jedną rzecz, może to będzie jakkolwiek pomocne: nie działa zarówno wysyłanie 'nadawca' jak i '[email protected]', za każdym razem wysyła z domeną ustawioną jako globalne mail_out dla e-maili wychodzących.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Jeszcze do zmiany kod w pliku: admin\sources\handlers\han_email.php

$this->emailer->setFrom( $this->from ? $this->from : $this->settings['email_out'], $this->settings['board_name'] );

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.