PHP로 메일 시스템 호출하기
이번 튜토리얼에서는 BlueSMTPMail() 및 BlueFormSend()의 매개변수를 배우고, 내부 또는 외부 발송을 설정하며, 첨부 파일, HTML 콘텐츠 및 발송 로그 처리 방법을 알아봅니다.
튜토리얼 목표
알림: 이 튜토리얼은 개발자를 위한 것이며, bluetronix CMS의 통합 메일 시스템을 PHP를 통해 직접 호출하는 방법을 보여줍니다.
bluetronix CMS는 이메일 전송을 위한 중앙 PHP 기능을 제공합니다.
이로 인해 각 PHP 스크립트마다 SMTP 연결, 메일 계정 및 기본 전송 기능을 다시 프로그래밍할 필요가 없습니다.
직접 이메일 및 뉴스레터 전송을 위해 다음 기능을 사용할 수 있습니다:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
폼 이메일 전송을 위해 추가적인 다음 기능을 사용할 수 있습니다:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
BlueSMTPMail()을 사용하면 일반적인 이메일과 뉴스레터를 bluetronix CMS의 중앙 메일 시스템을 통해 발송할 수 있습니다.
기능 호출은 다음과 같습니다:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
어떤 종류의 이메일이 전송될지를 결정합니다.
가능한 값:
Mail
Newsletter
예:
$MailType = "Mail";
또는:
$MailType = "Newsletter";
$MailAccount
$MailAccount는 사용할 SMTP 설정을 가진 이메일 계정을 결정합니다.
이 값을 통해 CMS 데이터베이스 테이블에서 해당 SMTP 구성 데이터를 로드합니다.
사용되는 구성은 $SMTPType에 따라 추가적으로 달라집니다.
$SMTPType
내부 또는 외부 이메일 계정이 사용되는지를 결정합니다.
가능한 값:
Intern
Extern
내부
에서:
$SMTPType = "Intern";
bluetronix CMS에 직접 설정된 이메일 계정이 사용됩니다.
계정은 다음 위치에 있습니다:
Email → Accounts
$From에서 사용된 발신자 주소는 그곳에 계정으로 존재해야 합니다.
외부
에서:
$SMTPType = "Extern";
외부 SMTP 접속 정보를 사용합니다.
이 정보는 CMS에서 다음과 같이 관리됩니다:
Email → Server - Extern
$From에서 사용된 발신자 주소는 그곳에 적절히 설정되어 있어야 합니다.
$From에서 사용되는 발신자 주소는 그에 맞게 설정되어야 합니다.
$From
발신자의 이메일 주소를 포함합니다.
예:
$From = "info@example.com";
이메일 주소는 선택된 SMTP 구성에 맞아야 합니다.
$To
일반 이메일의 수신자 이메일 주소를 포함합니다.
예:
$To = "customer@example.com";
일반 메일 발송 시 이 변수는 수신자로 사용됩니다.
$NewsletterTo
$NewsletterTo는 뉴스레터 발송에 사용됩니다.
변수는 여러 개의 이메일 주소를 텍스트로 포함하고 있습니다. 각 이메일 주소는 줄바꿈으로 구분됩니다.
예:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
이메일의 제목을 포함합니다.
예:
$Subject = "Welcome to our website";
$TextContent
이메일의 순수 텍스트 부분을 포함합니다.
이 부분은 HTML 이메일을 표시할 수 없는 이메일 프로그램에서 사용될 수 있습니다.
예:
$TextContent = "Thank you for your request.";
$HTMLContent
이메일의 HTML 부분을 포함합니다.
예:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
형식이 있는 이메일을 제목, 텍스트, 링크, 이미지 및 기타 HTML 요소와 함께 보낼 수 있습니다.
$Attachments
$Attachments를 사용하여 파일을 이메일에 첨부할 수 있습니다.
파일은 웹사이트 내 경로를 통해 지정됩니다.
예:
$Attachments = "/bx_doc/Intro.pdf";
여러 개의 첨부 파일이 있을 경우 각 파일 경로는 줄바꿈으로 구분됩니다.
예:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
$EmbedImages를 사용하여 이미지가 이메일에 직접 삽입될지를 설정할 수 있습니다.
예:
$EmbedImages = "ja";
옵션이 활성화되면, HTML 이메일 내에서 사용된 이미지는 이메일에 직접 통합되며 외부 URL을 통해서만 로드되지 않습니다.
이렇게 하면 수신자는 이미지가 웹서버에서 별도로 로드되지 않고 이메일 내에서 직접 확인할 수 있습니다.
$MailPlaceholderReplacement
$MailPlaceholderReplacement를 사용하여 다음의 자리표시자를:
$TextContent
$HTMLContent
개별 값으로 교체할 수 있습니다.
원칙은 다음과 같습니다:
Search
↓
Replace
이렇게 하면 예를 들어 이메일 내에서 개인화된 내용을 생성할 수 있습니다.
전형적인 사용 사례는 다음과 같습니다:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
$FormEntry를 사용하여 발송이 추가로 양식 보관소에 저장될지를 설정할 수 있습니다.
에서:
$FormEntry = "JA";
데이터베이스 테이블에 추가 항목이 생성됩니다:
00_form
저장되었습니다.
이를 통해 발송이 동시에 양식 또는 아카이브 항목으로 문서화될 수 있습니다.
예시: 일반 이메일 발송
다음 예시는 내부 메일 계정을 통해 일반 HTML 및 텍스트 메일을 발송합니다.
$MailType = "Mail";
$MailAccount = "info@example.com";
$SMTPType = "Intern";
$From = "info@example.com";
$To = "customer@example.com";
$NewsletterTo = "";
$Subject = "Your request";
$TextContent = "Thank you for your request.";
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
$Attachments = "/bx_doc/Intro.pdf";
$EmbedImages = "ja";
$MailPlaceholderReplacement = "";
$FormEntry = "NEIN";
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
절차는 간단하게 진행됩니다:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
예시: 뉴스레터 발송
뉴스레터의 경우 $MailType은 다음과 같이 설정됩니다:
Newsletter
설정되었습니다.
수신자는 이후 $NewsletterTo를 통해 전달됩니다.
$MailType = "Newsletter";
$MailAccount = "newsletter@example.com";
$SMTPType = "Intern";
$From = "newsletter@example.com";
$To = "";
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject = "Our latest news";
$TextContent = "Discover our latest news and products.";
$HTMLContent = "<h1>Our latest news</h1><p>Discover our latest news and products.</p>";
$Attachments = "";
$EmbedImages = "ja";
$MailPlaceholderReplacement = "";
$FormEntry = "NEIN";
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
각 뉴스레터 수신자는 $NewsletterTo 내에서 줄 바꿈으로 구분됩니다.
외부 SMTP 연결 사용
외부 메일 서버를 사용해야 하는 경우:
$SMTPType = "Extern";
설정되었습니다.
SMTP 접근 데이터는 미리 다음 경로에 설정되어 있어야 합니다:
Email → Server - Extern
설정되어 있어야 합니다.
예:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
직접 메일 발송 외에 다음 기능도 제공됩니다:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
이용 가능합니다.
이 기능은 CMS 양식과 관련된 이메일 발송을 위해 특별히 설계되었습니다.
변수는 이미 영어 표기법으로 완전히 작성되어 있습니다.
BlueFormSend()의 매개변수
| 변수 | 사용법 |
|---|---|
$SMTPType |
내부 또는 외부 SMTP 발송 선택 |
$SendMail |
양식의 메일 발송을 제어합니다. |
$SendSubject |
양식 이메일의 제목 |
$CopyToCustomer |
고객이 사본을 받는지 여부를 제어합니다. |
$TextToCustomer |
고객에게 전송할 메시지 텍스트 |
$FormArchive |
양식의 아카이브를 제어합니다. |
$FormID |
해당 양식의 ID |
$SendTo |
양식 이메일의 수신자 |
MailCache
BlueSMTPMail() 호출 시 데이터베이스 테이블에 추가 항목이 생성됩니다:
00_MailCache
이 테이블을 통해 이메일 발송 상태를 확인할 수 있습니다.
여기서 이메일이 성공적으로 처리되었는지 또는 전송되었는지 확인할 수 있습니다.
MailCache 항목은 다음에 사용됩니다:
1 Woche
저장되었습니다.
메일 발송의 전형적인 과정
PHP-Skript
↓
BlueSMTPMail()
↓
MailType prüfen
↓
MailAccount auswählen
↓
SMTPType prüfen
↓
SMTP-Konfiguration laden
↓
Empfänger bestimmen
↓
Text- und HTML-Inhalt erstellen
↓
Platzhalter ersetzen
↓
Anhänge hinzufügen
↓
Bilder gegebenenfalls einbetten
↓
E-Mail versenden
↓
00_MailCache aktualisieren
↓
optional 00_form speichern
BlueSMTPMail 매개변수 개요
| 변수 | 의미 |
|---|---|
$MailType |
메일 또는 뉴스레터 |
$MailAccount |
사용할 메일 계정 |
$SMTPType |
내부 또는 외부 |
$From |
발신자 주소 |
$To |
일반 이메일의 수신자 |
$NewsletterTo |
뉴스레터 수신자, 줄바꿈으로 구분 |
$Subject |
이메일 제목 |
$TextContent |
이메일 본문 |
$HTMLContent |
이메일 HTML 부분 |
$Attachments |
첨부파일 경로 |
$EmbedImages |
이메일에 이미지를 직접 통합 |
$MailPlaceholderReplacement |
이메일 내용 내에서 자리표시자 교체 |
$FormEntry |
00_form의 선택적 항목 생성 |
Zusammenfassung
bluetronix CMS의 중앙 메일 시스템은 자체 PHP 코드에서 직접 호출할 수 있습니다.
Für normalen E-Mail- und Newsletter-Versand wird verwendet:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
CMS 양식을 위한 추가 기능:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Intern
→ Email → Accounts
또는:
Extern
→ Email → Server - Extern
erfolgen.
모든 이메일 발송은 추가로 의해 이루어집니다:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
이로 인해 개발자는 이미 존재하는 bluetronix CMS의 메일 시스템을 자체 PHP 스크립트에서 직접 사용할 수 있으며, 전체 SMTP 로직을 직접 구현할 필요가 없습니다.
FAQ
고객들이 자주 묻는 질문
중앙 메일 시스템은 PHP에 어떤 기능을 제공하나요?
일반 이메일 및 뉴스레터에는 BlueSMTPMail()을 사용합니다. CMS 양식과 함께 발송할 때는 추가로 BlueFormSend()를 사용할 수 있습니다.
내부 이메일 계정은 어디에서 찾을 수 있나요?
내부 메일 계정은 Email → Accounts에서 설정합니다. 발송 시 $SMTPType을 Intern으로 설정하세요. 발신자 주소는 설정된 계정에 속해야 합니다.
외부 SMTP 서버를 어떻게 사용하나요?
접속 정보를 Email → Server - Extern에서 설정하고 $SMTPType = "Extern";을 사용하세요. 발신자 주소는 선택한 구성에 맞아야 합니다.
메일과 뉴스레터의 차이는 무엇인가요?
$MailType = "Mail";을 설정하면 $To에 있는 수신자에게 일반 이메일이 전송됩니다. 뉴스레터의 경우 $MailType = "Newsletter";로 설정하고 $NewsletterTo를 통해 수신자를 전달합니다.
여러 뉴스레터 수신자를 어떻게 전달하나요?
주소를 $NewsletterTo에 입력하고 각 이메일 주소는 줄 바꿈으로 구분합니다.
같은 이메일에서 텍스트와 HTML을 보낼 수 있나요?
네. 순수 텍스트는 $TextContent에 있고, 포맷된 HTML 메시지는 $HTMLContent를 통해 전달됩니다.
이메일에 첨부 파일을 추가하려면 어떻게 하나요?
$Attachments를 통해 웹사이트 내의 파일 경로를 전달합니다. 여러 첨부 파일은 줄 바꿈으로 구분하여 경로를 입력합니다.
이미지를 이메일에 직접 임베드할 수 있나요?
템플릿에서는 $EmbedImages = "ja";를 사용합니다. 이렇게 하면 HTML 메시지 내에서 사용되는 이미지가 기술된 CMS 기능을 통해 직접 임베드됩니다.
MailPlaceholderReplacement는 무엇에 사용되나요?
텍스트 및 HTML 내용의 자리 표시자를 개별 값으로 대체할 수 있습니다. 예를 들어 이름, 주문 번호 또는 개인 링크를 위해서입니다. 템플릿에서는 검색 및 대체 원칙을 설명하지만 구체적인 전달 형식은 설명하지 않습니다.
전송을 추가로 양식 항목으로 아카이브하려면 어떻게 하나요?
BlueSMTPMail()에서 $FormEntry = "JA"; 값을 설정하세요. 템플릿에 따르면 그렇게 하면 00_form에 추가로 항목이 저장됩니다.
배송 상태를 어디에서 확인할 수 있나요?
템플릿에서는 00_MailCache 테이블을 설명합니다. 거기에 생성된 전송 항목은 일주일 동안 저장됩니다. 처리 항목만으로는 수신자에게 배달된 것을 증명하지는 않습니다.
BlueFormSend()는 언제 사용하나요?
BlueFormSend()는 CMS 양식으로 이메일 발송을 위해 설계되었습니다. 여기에는 발송 제어, 주제, 고객 복사본, 양식 아카이브 및 양식 ID 등 여러 매개변수가 포함됩니다.