| Line 121... |
Line 121... |
| 121 |
* The default sender. Authenticates as sdtech@smartdukaan.com and rewrites every
|
121 |
* The default sender. Authenticates as sdtech@smartdukaan.com and rewrites every
|
| 122 |
* From to that identity — Workspace binds an authenticated session to one address
|
122 |
* From to that identity — Workspace binds an authenticated session to one address
|
| 123 |
* and rejects any other. Also answers to "mailSender" so unqualified
|
123 |
* and rejects any other. Also answers to "mailSender" so unqualified
|
| 124 |
* JavaMailSender injections resolve here.
|
124 |
* JavaMailSender injections resolve here.
|
| 125 |
*/
|
125 |
*/
|
| 126 |
@Bean(name = {"googleMailSender", "mailSender"})
|
126 |
@Bean(name = "googleMailSender")
|
| 127 |
@Primary
|
- |
|
| 128 |
public JavaMailSender googleMailSender() {
|
127 |
public JavaMailSender googleMailSender() {
|
| 129 |
JavaMailSenderImpl mailSender = new AuthenticatedIdentityMailSender();
|
128 |
JavaMailSenderImpl mailSender = new AuthenticatedIdentityMailSender();
|
| 130 |
mailSender.setHost("smtp.gmail.com");
|
129 |
mailSender.setHost("smtp.gmail.com");
|
| 131 |
mailSender.setPort(465);
|
130 |
mailSender.setPort(465);
|
| 132 |
mailSender.setUsername("sdtech@smartdukaan.com");
|
131 |
mailSender.setUsername("sdtech@smartdukaan.com");
|
| Line 143... |
Line 142... |
| 143 |
props.put("mail.smtp.writetimeout", "120000");
|
142 |
props.put("mail.smtp.writetimeout", "120000");
|
| 144 |
|
143 |
|
| 145 |
return mailSender;
|
144 |
return mailSender;
|
| 146 |
}
|
145 |
}
|
| 147 |
|
146 |
|
| - |
|
147 |
/**
|
| - |
|
148 |
* The default sender.
|
| - |
|
149 |
*
|
| - |
|
150 |
* Verified working 2026-08-31: MAIL FROM:<noreply@smartdukaan.com> returns 250
|
| - |
|
151 |
* over IPv4. It does not authenticate -- Workspace authorises it by allowlisted
|
| - |
|
152 |
* source IP -- so it may legitimately send as noreply@.
|
| - |
|
153 |
*
|
| - |
|
154 |
* googleMailSender is NOT the default: its app password is currently rejected
|
| - |
|
155 |
* with "535 5.7.8 Username and Password not accepted". Point the default back at
|
| - |
|
156 |
* it once a valid app password is issued for sdtech@smartdukaan.com.
|
| - |
|
157 |
*
|
| - |
|
158 |
* The allowlist covers the IPv4 address only. Over IPv6 the same command is
|
| - |
|
159 |
* refused with "550 5.7.1 Invalid credentials for relay", so anything that
|
| - |
|
160 |
* prefers IPv6 will fail here.
|
| - |
|
161 |
*/
|
| 148 |
@Bean(name = "gmailRelaySender")
|
162 |
@Bean(name = {"gmailRelaySender", "mailSender"})
|
| - |
|
163 |
@Primary
|
| 149 |
public JavaMailSender getGmailRelaySender() {
|
164 |
public JavaMailSender getGmailRelaySender() {
|
| 150 |
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
|
165 |
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
|
| 151 |
mailSender.setHost("smtp-relay.gmail.com");
|
166 |
mailSender.setHost("smtp-relay.gmail.com");
|
| 152 |
mailSender.setPort(587);
|
167 |
mailSender.setPort(587);
|
| 153 |
|
168 |
|