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, mail
unserem 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
, MailGun
und , MailJet
weil 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
apache
Benutzer 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/maillog
Status deferred because connection timeout with aspmx2.googlemail.com
hier 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.