Verknüpfen der GCP Compute Engine mit dem SMTP-Relay-Dienst der Google Suite

Verknüpfen der GCP Compute Engine mit dem SMTP-Relay-Dienst der Google Suite

Vor kurzem möchten wir GCP Compute Engine mit dem E-Mail-Dienst der Google Suite verbinden.Dokumentationsagte, dass

Google Compute Engine lässt keine ausgehenden Verbindungen über Port 25 zu. Standardmäßig wird ausgehendes SMTP blockiert, da SMTP zwischen Servern anfällig für Missbrauch ist. Darüber hinaus entlastet ein vertrauenswürdiger Drittanbieter wie SendGrid, Mailgun oder Mailjet Compute Engine und Sie von der Aufrechterhaltung der IP-Reputation bei Ihren Empfängern.

Unsere Idee ist, dass wir ein PHP-Skript hatten und es auf httpd/apache lief, das die Funktion hatte, mailunserem Vertriebsteam eine E-Mail zu senden, wie unten beschrieben

$mail = mail($siteOwnersEmail, $subject, $message, $headers);

und verwende Sendmail zur Weiterleitung an den SMTP-Dienst von Google. Unsere Rechenmaschine läuft auf Centos 7. Wir ziehen keine anderen vertrauenswürdigen Drittanbieter als Google-Empfehlung in Betracht, wie z. B. SendGrid, MailGunund , MailJetweil wir bereits Google Suite verwendet haben.

Von einem anderenPost, die Verbindung von Compute Engine und Google Suite ist schwierig. Dazu brauchen wir Ihre Hilfe.

Wir haben Sendmail wie folgt konfiguriert:

divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
dnl define(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnl
dnl define(`confLOG_LEVEL', `9')dnl
dnl define(`SMART_HOST', `relay-smtp.gmail.com')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
dnl define(`RELAY_MAILER_ARGS', `TCP $h 587′)dnl
dnl define(`ESMTP_MAILER_ARGS', `TCP $h 587′)dnl
dnl define(`confAUTH_OPTIONS', `A p')dnl
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
dnl define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
dnl define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
dnl define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
dnl define(`confDONT_BLAME_SENDMAIL', `groupreadablekeyfile')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl define(`confINET_QOS', `AF11')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl
dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl define(`confLOCAL_MAILER', `cyrusv2')dnl
dnl define(`CYRUSV2_MAILER_ARGS', `FILE /var/lib/imap/socket/lmtp')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')
FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
dnl MASQUERADE_AS(`qreatiq.com')dnl
dnl FEATURE(masquerade_envelope)dnl
dnl FEATURE(masquerade_entire_domain)dnl
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl

und SELinux bereits wie folgt eingestellt

setsebool httpd_can_sendmail on 

Zertifikat generieren

cd /etc/pki/tls/certs
make sendmail.pem

Erstellen Sie eine Authentifizierungsdatei für die Authentifizierung aufsmtp.gmail.com

mkdir /etc/mail/auth
chmod 700 /etc/mail/auth 

Client-Infodatei erstellen

AuthInfo:smtp.gmail.com “U:smmsp” “I:gmail_address” “P:password” “M:PLAIN”
AuthInfo:smtp.gmail.com:587 “U:smmsp” “I:gmail_address” “P:password” “M:PLAIN”

und mache

makemap -r hash client-info.db < client-info
chmod 600 client-info client-info.db

Aliase bearbeiten

root:email_address

apacheBenutzer als vertrauenswürdiger Benutzer hinzufügen und ausführennewaliases

dann habe ich versucht, eine E-Mail mit diesem Code zu senden

echo ‘this is a test’| mail -s test_email [email protected]

Und CEK-Protokoll bei /var/log/maillogStatus deferred because connection timeout with aspmx2.googlemail.comhier sind komplette Stacktrace

Aug 30 06:54:03 gcp***-***a sendmail[14979]: w7U6s31m014979: to=system@*****.com, ctladdr=a*****g_imannuel (1001/1002), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30234, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (w7U6s3QN014980 Message accepted for delivery)
Aug 30 06:59:03 gcp***-***a sendmail[14982]: w7U6s3QN014980: to=<system@*****.com>, ctladdr=<a*****g_imannuel@gcp***-***a.c.calm-ca***-XXX.internal> (1001/1002), delay=00:05:00, xdelay=00:05:00, mailer=esmtp, pri=120537, relay=aspmx2.googlemail.com. [173.194.66.26], dsn=4.0.0, stat=Deferred: Connection timed out with aspmx2.googlemail.com.

und protokollieren Sie unter /var/log/messages nur die Sitzung, die für SSH gestartet wird.

außerdem gibt es hier den SMTP-Relay-Dienst in unserer Google Suite

Allowed senders: Any addresses (not recommended)
Only accept mail from the specified IP addresses: Yes
Allowed IP addresses: www.****.com
Require SMTP Authentication: Yes
Require TLS encryption: No

Habe die Google Suite – Gmail-Apps überprüft, aber die E-Mail wird nie an den Absender gesendet. So traurig. Weiß jemand, wo das Problem liegt?

Antwort1

Die Verwendung von Sendmail hier macht die Sache viel zu kompliziert (und wahrscheinlich wird trotzdem Port 25 verwendet). Folgen Sie einfach den Anweisungen hier:https://support.google.com/a/answer/2956491?hl=dezum Einrichten von GSuite für die E-Mail-Weiterleitung, verwenden Sie die Authentifizierung und verwenden Sie Port 587 zum Senden.

Sie können auch nicht die eingebaute PHP-Funktion mail() verwenden (und das sollte wahrscheinlich auch niemand tun). Verwenden Sie stattdessen PEAR::Mail:http://pear.php.net/manual/en/package.mail.mail.php– Mit diesem Paket können Sie Host/Port usw. konfigurieren.

verwandte Informationen